Kleine Tipps am Rande

Folgendes Szenario ist bestimmt jedem Webentwickler schon einmal begegnet: Man möchte in einer Schleife einen String konkatenieren (also anhängen) oder eine Zählvariable inkrementieren. Das „Tolle“ an PHP ist, dass man einfach so $i++ schreiben kann und alles funktioniert wunderbar (wenn man Notices-Meldungen deaktiviert hat, was auf Produktiv-Sites oft der Fall ist). Das Inkrementieren einer nicht-initialisierten Variable dauert allerdings ca 5 mal so lang wie das Inkrementieren einer initialisierten Variable.

In Funktionen sollten keine unnötigen Variablen übergeben werden, da das unnötig Zeit und Speicher kostet. Ebenfalls sollten keine globalen Variablen referenziert werden (Schlüsselwort global), wenn sie gar nicht benötigt werden. Das kostet genauso viel Performance wie das unnötige deklarieren einer nicht benutzten lokalen Variable, denn letztlich macht global ja eine globale Variable lokal verfügbar.

Das wollte ich nur kurz anmerken, da man immer wieder solche Schlampigkeiten sieht.

Damit dieser Post nicht all zu kurz wird, sei hier noch eine allgemeine Regel angepriesen: Das Kompilieren und Interpretieren von PHP-Scripts dauert ca 2-10 mal so lange wie das Laden einer statischen HTML-Seite.
Man sollte sich daher genau überlegen, ob es unbedingt eine PHP-Seite sein muss, wenn darin gar kein PHP ausgeführt wird. Ebenfalls liest man ab und zu, dass man aus SEO-Gründen per .htaccess oder php.ini-Einstellung PHP dazu bewegen soll, auch .html-Dateien zu parsen, damit darin enthaltener PHP-Code ausgeführt werden kann. Es mag sein, dass statische HTML-Seiten bei Suchmaschinen beliebter sind als ihre PHP-Pendants, allerdings sollte das nicht so massiv auf Kosten der Performance von wirklich staatischen Seiten gehen. Wer unbedingt die .html-Endung haben möchte, sollte mod-rewrite verwenden. Damit kann man sowieso viel schönere URLs zusammenbauen, als wenn man ein PHP-Script als HTML-Seite speichert, diesem dann doch die unerwünschten GET-Eingabeparameter übergibt und die Suchmaschinen einen dann wieder nicht mögen, denn ganz doof sind die auch nicht, wenn sie eine Seite xyz.html?par1=a&par2=b sehen.
Demzufolge: Statische Seiten einsetzen, wo nix Dynamisches gebraucht wird!



Deprecated: Directive 'allow_url_include' is deprecated in Unknown on line 0