新しい Zend_Loader_Autoloader がファイルを見つけられない
-
18-09-2019 - |
質問
ZF 1.7 から ZF 1.9 にアップグレードしたところです。 ほとんど すべてがうまくいきます...オートローダーを除く。
古い:
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();
新しい:
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('MySiteName_');
$loader->setFallbackAutoloader(true);
自動ロードする必要があるファイルのほとんどは名前空間がありません (名前空間が設定される前の大きなプロジェクトであるため)。これらは次のディレクトリにあります。
- /アプリケーション/コントローラー
- /共通/モデル
- /図書館
- /ベンダー
/library/Form.php が見つからないことを除けば、サイトは正常に動作しているようです。
以前はできましたが、今はできません。require_once 'library/Form.php' を追加すると機能しますが、それは必要ではありません。いくつかの場所でそれを開始すると、オートローダーを放棄してハードコードする必要があるのではないかと心配しています。すべてが含まれます。「setFallbackAutoloader(true)」を追加し、インクルードパスに「library」を含めることで問題が修正されると思いましたが、修正されませんでした。
私のインクルードパスは次のとおりです。
.:/Users/lofye/Documents/htdocs/mysitename/vendor
:/Users/lofye/Documents/htdocs/mysitename/common
:/Users/lofye/Documents/htdocs/mysitename/common/models
:/Users/lofye/Documents/htdocs/mysitename/library
:/Users/lofye/Documents/htdocs/mysitename
ご協力をよろしくお願いいたします。
解決
あなたはこれを行う場合、それは動作します言っます:
require_once 'library/Form.php';
しかし、あなたのライブラリーのパスが含まれている場合、あなたは、指定する必要がありますオートローダはこのように、同じように:
require_once 'Form.php';
のrequire_once 'Form.php' を入力してみてください。あなたのスクリプトに。それが爆撃していますか?その後、あなたのパスを含める/ライブラリを持っていない、それが固定される必要があろう。
他のヒント
あなたのオートローダはMySiteName_
で始まるロードクラスを試みるために起こっています。多分名前空間としてForm
を追加してみてください!
$loader->registerNamespace('Form');
ファイルlibrary/Form.php
内部クラス名はForm
でなければなりません。自分のクラスの名前は何ですか?
私はここでテストされ、正常に動作してます。