require_once/ Zend/ php5

Hallo,

ich habe da gerade ein Verständnisproblem.

Gegeben:
Google PHP Class für Picasa(basiert auf Zend),
Unterordner Zend im Projektordner,
kein Zugriff auf PHP.ini,
Host Europe Webpack

Wenn ich jetzt versuche Zend mit require_once ‚Zend/Loader.php‘; zu laden geht das nicht, wenn ich den lokalen Pfad vor Zend setze wird Loader.php geladen - aber da Zend in Loader.php weitere Dateien mit require_once() laden möchte gibt es Fehler.

Warning: include_once() [function.include]: Failed opening ‚Zend/Gdata.php‘ for inclusion (include_path=’.:/usr/share/pear/php5’) in /is/htdocs/foo/www/cms/getsimple/admin/plugins/gs-picasa-ad-gallery/Zend/Loader.php on line 146

Sucht require_once() die Datei im include_path? Im PHP Manual finde ich dazu nichts. Lokal funktioniert das ja auch, wenn ich Zend in den include_path kopiere.

Ich habe das bisher so verstanden, require_once() läd die Datei ausgehend vom Pfad der Datei in der der Befehl aufgerufen wird.
Also wenn ich eine Struktur habe Ordner1/Ordner2/Ordner3 kann ich in ichliegeinOrdner1.php require_once(‚Ordner2/ichliegeinOrdner2.php‘), in ichliegeinOrdner2.php require_once(‚Ordner3/ichliegeinOrdner3.php‘) usw. schreiben?
Der Unterschied zu include_once() ist eine andere Fehlermeldung. _once sagt das die Datei nur einmal geladen wird und nicht bei jedem Aufruf, sprich _once prüft auch ob die Datei schon geladen ist. Soweit richtig? Oder was mache ich da falsch?

btw. Host-Europa erlaubt es mir „PHP-Zend-ZE1-Kompatibilität“ anzuschalten, was bringt mir das?

Zitat:
_| PHP-Zend-ZE1-Kompatibilität

Hier legen Sie den Wert der Konfigurationseinstellung „php_zend_ze1_compatibility_mode“ (zend.ze1_compatibility_mode) fest. Eine der zentralen Änderungen von php5 das OOP Modell; es wird die Zend Engine 2.0 genutzt. Die zend.ze1_compatibility_mode Direktive aktiviert die Kompatibilität mit der Zend Engine 1.0 (von PHP 4)._

Danke

Ok, die Lösung die ich gefunden habe:

set_include_path("/is/htdocs/foo/www/cms/getsimple/admin/plugins/gs-picasa-ad-gallery");

oder besser

set_include_path(dirname(__FILE__)."/gs-picasa-ad-gallery");

require_once ‚Zend/Loader.php‘;

innerhalb der Funktion aufrufen, damit der includ_path auch nur da gültig ist und es funktioniert.