質問

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でなければなりません。自分のクラスの名前は何ですか?

私はここでテストされ、正常に動作してます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top