0

ZendWebサイトで異常な自動読み込みの問題が発生しています。これまで、自動読み込みはおやつとして機能してきました。しかし、プロジェクトに新しいファイルを追加しましたが、自動読み込みでファイルが見つかりません。私は問題を最小限のテストケースに減らし、誰かが私を助けてくれるかどうか疑問に思いました。

私のウェブサイトには、次のような通常のディレクトリ構造があります。

site/
  application/...
  library/
    Zend/...
    PHPUnit/...
    Ext/
      Extras/
        Test.php
      Service/
        Test.php

(StackOverflowに関する他の役立つコメントに従って)自動読み込みを正しく設定し、Ext_名前空間を登録しました。これは、Ext_Extras_Testを正しくインスタンス化できることで証明されています。

Ext_Service_Testをインスタンス化しようとすると、問題が発生します。自動読み込みは「ストリームを開くことができませんでした」。find正しいスペルをチェックし、、、、およびファイルエクスプローラーを使用してディレクトリの内容を一覧表示しls、ファイルが正しい場所に存在することを確認しました。

&^ %%£*でファイルを見つけることができません!誰か手がかりはありますか?

4

1 に答える 1

1

指定されていなくても、リソースオートローダーをオーバーライドしようとしていることがわかりました。これはすべての名前空間に影響を与えると確信しています。

42.3.2. モジュール リソース オートローダー Zend Framework には、Zend Framework MVC アプリケーションの既定の推奨ディレクトリ構造をカバーするリソース タイプ マッピングを含む Zend_Loader_Autoloader_Resource の具体的な実装が付属しています。このローダー Zend_Application_Module_Autoloader には、次のマッピングが付属しています。

forms/       => Form
models/      => Model
    DbTable/ => Model_DbTable
    mappers/ => Model_Mapper
plugins/     => Plugin
services/    => Service
views/
    helpers  => View_Helper
    filters  => View_Filter

例として、「Blog_」というプレフィックスを持つモジュールがあり、クラス「Blog_Form_Entry」をインスタンス化しようとすると、リソース ディレクトリの「forms/」サブディレクトリで「Entry.php」という名前のファイルが検索されます。

Zend_Application でモジュール ブートストラップを使用すると、Zend_Application_Module_Autoloader のインスタンスがデフォルトで個別のモジュールごとに作成され、モジュール リソースをオートロードできるようになります。

于 2012-05-24T08:58:13.693 に答える