2013-12-19 4 views
5

ich PHP-Projekt mit folgendem Anbieter Verzeichnisstruktur haben:Zend Framework Komponist automatisch geladen

vendor 
    zendframework 
    zendframework 
     library 
     Zend 
     ... 
     ... 
     Cache 
     ... 
     ... 

Wenn ich die folgende Zeile in autoload_namespaces.php everythins setzen ist ok:

'Zend\\Cache' => $vendorDir . '/zendframework/zendframework/library/', 

aber diese Linie doesn ‚t Arbeit:

'Zend\\Cache' => $vendorDir . '/zendframework/zendframework/library/Zend/Cache/', 

Der Fehler ist:

Fatal error: Class 'Zend\Cache\Storage\Adapter\MemcachedOptions' not found 

Was ist falsch an meinem Code? Wie kann ich nur das Cache-Modul von zend framework laden? Warum funktioniert es, wenn ich den ganzen Bibliotheksordner spezifiziere?

+1

Was Sie versuchen zu tun? Klassen werden bei Bedarf geladen, Ihre Anwendung lädt nur die Klassen, die verwendet werden. Die Datei 'autoload_namespaces.php' wird automatisch vom Composer generiert, Sie sollten sie nicht bearbeiten. –

+0

Ich versuche MemcachedOptions() Klasse zu verwenden: '$ options = new \ Zend \ Cache \ Storage \ Adapter \ MemcachedOptions();' und diese Zeile löst einen Fehler aus. – Phantom

+1

Angenommen, Sie haben Zend Framework mit Composer installiert, sollte in 'autoload_namespaces.php' ein' Zend \\' Eintrag stehen. Das ist alles was du brauchst, ändere nichts anderes. Wenn es nicht vorhanden ist, installieren Sie ZF mit Composer neu. –

Antwort

7

Zend Framework 1.x kann mit Composer installiert werden.

Anzahl: "require": { "ZendFramework/zendframework1": "1. *" },

zu Ihrem composer.json Und tun Komponist über die Befehlszeile installieren. Dies wird zend Framework herunterladen und die Bibliothek so einrichten, dass sie zusammen mit allem, was der Composer verwaltet, automatisch geladen wird.

Um Zend Framework App zu bekommen den Komponisten Autoloader verwenden Sie benötigen, um wie so Ihre Anwendungen index.php und umfassen den Komponisten Autoloader zu bearbeiten:

require_once realpath(APPLICATION_PATH . '/../vendor/autoload.php'); 
+0

Wissen Sie, wie Sie bestimmte Komponenten von ZF1 herunterladen können, ohne das Ganze mit Composer herunterzuladen? – GreeKatrina

+0

Diese Pakete haben alle das Präfix zf1/something. Hier ist eine Liste: https://packagist.org/search/?q=zf1%2F – txyoji

+0

Danke. Leider brauche ich Version 1.10.4, die sie nicht so gut unterstützen. – GreeKatrina