Guten Tag,
Ich stimme dir zu, dass IS_LOCAL/IS_REMOTE eher was fuer den Server als fuer PHP ist. Meine Scripte sind ebenfalls ziemlich unabhaengig vom Server, allerdings cache ich lokal nicht und komprimiere JS und CSS auch nicht, solche Sachen halt.
Um genau dieser Unabhängigkeit zu bewahren, würde ich diese Maßnahmen nicht in PHP implementieren, sondern in der Serverkonfiguration.
Dein Vorschlag mit auto_append_file ist mir allerdings nicht so ganz klar. Wenn ich dich recht verstehe, schlaegst du vor, dass ich ein PHP-Script in der Art <? $is_remote = true; ?> auto-prepende und dann in der Folge isset($is_remote) checke.
Nein. Du kannst auto_*pend_file dazu benutzen, dein PHP-Environment in den entsprechenden Kontext zu bringen, z.B. in dem du in dem auto-prepend-Skript entsprechende Einstellungen machst (ergänzend zu den Einstellungen im Server). Dazu würde ich aber auch immer PHP als (Fast-)CGI einbinden, denn dann kannst du ganze Ini-Files für PHP definieren, anstatt alles mit php_(admin_)* zu setzen.
Dann stehe ich aber wieder vor dem Dilemma, dass ich die PHP-Ini auf allen betroffenen Maschinen aendern muss, also im Endeffekt wie bei -D.
Nein, wieso? Da du verschiedene Ini-Files als auch verschiedene Defines angeben kannst, gibt es genau einen konfigurierten Server, der nur je nach Bereich mit anderen Parametern gestartet wird.
Ich wuerde ausserdem gerne wissen, was der Stagingbereich ist, bedeutet das, dass die Applikation auf dem Testserver laeuft, bis die letzte Aenderung durch ist?
Im Developmentbereich wird einfach nur entwickelt. Dementsprechend dürfen die Einstellungen etwas liberaler sein, so ist auch sowas wie xdebug und sehr liberales Error Reporting erlaubt.
Der Stagingbereich ist eine eins-zu-eins-Kopie des Produktivbereichs. Bevor irgendwas auf den Live-Bereich verschoben wird, muss es erst auf dem Staging-Bereich abgenommen werden.
Der Livebereich ist klar: Dort laufen nur stabile Versionen, die bereits getestet wurden.
Das lässt sich alles ganz gut automatisieren.
Gruß
Christoph Jeschke
Zend Certified Engineer
Certified Urchin Admin
Selfcode: sh:( fo:) ch:? rl:? br:& n4:( ie:( mo:) va:} de:] zu:$ fl:( ss:} ls:& ja:|