2013-12-19 5 views
5

私は、次のベンダーのディレクトリ構造を持つPHPプロジェクトがあります:私はautoload_namespaces.phpのeverythinsに以下の行を入れZend Frameworkの作曲の自動ロード

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

はokです:

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

をしかし、この行はdoesnの「トンの仕事:

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

エラーは、次のとおりです。

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

私のコードで何が問題になっていますか? zendフレームワークからキャッシュモジュールだけをロードするにはどうしたらいいですか?ライブラリフォルダ全体を指定すると、なぜ動作しますか?

+1

何をしようとするの?要求に応じてクラスがロードされるため、アプリケーションは使用されるクラスのみをロードします。 'autoload_namespaces.php'ファイルはComposerによって自動生成されますので、編集しないでください。 –

+0

MemcachedOptions()クラスを使用しようとしました: '$ options = new \ Zend \ Cache \ Storage \ Adapter \ MemcachedOptions();'この行はエラーを発生させます。 – Phantom

+1

Composerを使ってZend Frameworkをインストールしたと仮定すると、 'autoload_namespaces.php'に' Zend \\ 'エントリがあるはずです。それはあなたが必要なすべてです。他のものを変えないでください。存在しない場合は、Composerを使用してZFを再インストールします。 –

答えて

7

Zend Framework 1.xは、コンポーザーにインストールできます。

追加:あなたのcomposer.json に

、:{ "1 *" "zendframework/zendframework1":}コマンドラインから作曲をインストールしない が "必要"。 これは、zendフレームワークをダウンロードし、作者が管理している他のすべてと共に、ライブラリを自動ロードするように設定します。

には、アプリケーションのindex.phpファイルを編集する必要があります作曲オートローダを使用するようにZend Frameworkのアプリを取得し、そのような作曲オートローダ含めるには:

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

ZF1の特定のコンポーネントをコンポーザーを使ってダウンロードすることなくダウンロードする方法を知っていますか? – GreeKatrina

+0

これらのパッケージには、すべて接頭辞zf1/somethingが付いています。ここにリストがあります:https://packagist.org/search/?q=zf1%2F – txyoji

+0

ありがとうございます。残念ながら、私はバージョン1.10.4を必要としています。 – GreeKatrina

関連する問題