IPC 2012 Spring

Nicht mehr includen als nötig

Wenn man häufig genutzte Funktionen in eine extra Datei auslagert, die dann einfach per include() oder require() in alle anderen Scripte der Seite eingebunden werden kann, ist das eine feine Sache. Es gibt allerdings ein Problem mit einer solchen Include-Datei: Meistens werden für bestimmte PHP-Scripte nur einige Funktionen benötigt und nicht alle, die in der Funktionsdatei stehen.

Man sollte deshalb darauf achten, dass man mehrere Funktionsdateien so anlegt, dass sie die Funktionen enthalten, die auch von allen Scripten, die diese Datei einfügen, benötigt werden. Wenn Funktionen in sehr vielen Dateien benutzt werden (bspw Überprüfung, ob man eingeloggt ist), kann man diese in eine Datei mit anderen Funktionen packen, die in den gleichen PHP-Dateien auch noch benutzt werden. Eine spezifische Funktion für 2 Seiten gehört allerdings keineswegs in eine solche globale Funktionsdatei. Dafür sollte man eine Extra-Datei anlegen, wo dann diese Funktion enthalten ist.

Die Laufzeit mag gar nicht so sehr steigen durch das Benutzen einer großen Funktionendatei, aber der Speicherbedarf steigt, denn jede Funktion, die includet wird, muss auch im Speicher vorrätig sein, damit auf sie bei Bedarf zugegriffen werden kann, denn PHP weiß ja noch nicht, ob die Funktion dann wirklich gebraucht wird.

Schlagwörter: , , ,

3 Kommentare bisher »

  1. PHP Performance » Kein doppelter Code sagt

    am 20. April 2007 @ 13:12

    [...] auch nutzen – und am besten effektiv nutzen. Leider gibt es nämlich auch das Gegenteil zu den in diesem Artikel beschriebenen Entwicklern: solche, die fast vollständig ohne Funktionen auskommen und lieber [...]

  2. Jo sagt

    am 21. Mai 2007 @ 14:16

    Hallo,
    Danke für die Tipps. Vor allem der letzte Abschnitt ist einleuchtens. Bei Klassen wird dies dasselbe sein nehme ich an? Oder werden die intern anders gehandelt?

  3. admin sagt

    am 21. Mai 2007 @ 14:23

    Ja bei Klassen ist es genauso: Auch da gilt: Alles, was im Script definiert ist, muss auch in den Speicher geschaufelt werden – unabhängig davon, ob es überhaupt aufgerufen wird.

Komentar RSS · TrackBack URI

Hinterlasse einen Kommentar

Name: (erforderlich)

eMail: (erforderlich)

Website:

Kommentar: