問題タブ [autoloader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Doctrine 2 と名前空間を備えた Zend Framework 1.11
クラスの名前空間を明示的に指定せずに、プロジェクトで Doctrine を使用してきました。これにより、コードを別々のサブディレクトリに整理しようとすると、いくつかの問題が発生しました (または、少なくともそのように見えました)。そのため、コードに名前空間を実装しようとしましたが、苦労しており、ここで多くの解決策を試してみましたが役に立たなかったので、尋ねる必要があります。
私は標準的なプロジェクト構造を持っています:
私のBootstrapには次のものがあります(コードに名前空間がなくても問題なく動作します):
追加すると
各モデル クラスに追加し、Bootstrap を次のように更新すると、「クラス アプリケーションが存在しません」という例外が発生します (アプリケーションはモデルの 1 つです)。
完全を期すために、コントローラーでそのモデルを次のように参照します。
私は何が欠けていますか?当たり前のことだと思いますが、本当に今、髪を抜いています。
zend-framework - ZF 名前空間オートローダーとブートストラップ
私は標準的なZF構造を持っています
ライブラリ -wil -Auth -Adapter.php
このフォルダー /libary/Wil/Auth/Adapter に、このクラスがあります
http://www.zendcasts.com/logging-in-users-using-doctrine-and-zend_auth/2010/01/に基づく
クラス Wil_Auth_Adapter は Zend_Auth_Adapter_Interface を実装します {
}
そして、application.ini で autoloaderNamespaces[]="Wil" を宣言します
ブートストラップには、ヘルパー ブローカーなどとして登録するものは何もありません。
私の質問は、 $adapter = new Wil_Auth_Adapter() のようにコントローラーから呼び出すと、なぜ機能するのですか?
ZF のオートローダーとリソースとブートストラップを理解していないことはおそらく明らかです。
プロセスの適切な説明はどこで入手できますか?
php - クラスが見つかりません PHP OOP
私はこれを機能させることができません。
これが inc/classes/queries.class.php ファイルです。
「クラス 'queries' not found」を返します。どうしたの?
編集:
致命的なエラー: 行 5 の /index.php で __autoload() (以前に /index.php:5 で宣言されたもの) を再宣言できません
なんてこったい?独自の行で既に宣言されている関数を再宣言することはできません。なぜですか?
php - クラスをロードするためのオートローダーが期待どおりに動作しない
最近、私はOOPで作業を開始し、使用するクラスをロードするためにclassLoaderを作成しました..このクラスを作成して(ローカル)で作業したところ、すべてうまくいきました。しかし、すべてをウェブホストにアップロードすると、機能しなくなりました。ローダーがクラスをロードする必要があるページにアクセスすると、次のエラーが表示されます..
私のオートローダーのコードは次のとおりです..
php - オートローダーは全知のようです | ネストされたインクルードは不要
この単純なオートローダー コードを使用します。
そして私はこの電話をかけますnew SDB();
SDB
SDBOne
実際には、私が含めたことのないものを継承していますが、オートローダーはそれをロードします。
これは、ネストされた/他のモジュールに含まれるモジュールをロードすることを知っていることを意味します。
そのため、オートローダーを使用する場合、見た目からして、何も要求したり含めたりする必要はありません。
ただし、オートローダーのないスタンドアロン モジュールを使用する場合は、継承元のクラスを含める必要があります。
使うべきか
警告ではなくエラーが必要なため、使用すると思いrequire_once
ます...さらに、オートローダーでコードを使用する場合、コードを2回ロードしたくありません。
基本的に、SDB には 2 種類の用途があります。1 つはオートローダーがあり、もう 1 つはありません。
参照
php - PHP オートローダーは名前空間パスを追加します
私のMVC構造は次のとおりです。
これで、それぞれに名前空間が指定されました。たとえば、私は持っています
私のオートローダーは次のようになります。
そして私の主なindex.phpの使用
localhost/web/ を開くと、次のエラーが表示されます。
要求されたファイルの先頭に Core/ を追加しているようです。Index.php は Project/Controllers 内にあり、Core/Project/Controllers 内にはありません。取り除こうとしたら
助けてください
php - 自動ロードがオンの場合、PHPはファイルをインクルードできません
クラスをロードする独自のMVCとオートローダーがあります。ベースのView.phpがCoreフォルダーにあり、そのレンダリング関数が次のことを行うことを除いて、すべてが機能します。
View.phpは名前空間を使用します
インデックスページに移動すると、次のように表示されます。
私は以下を試しました:私は追加しました
そして、私がしたことを含める代わりに:
これにより、ページにヘッダーが表示されますが、エラーも発生します。
header.phpはクラスではないので、私はそれを知っています。ビューファイルです。そのため、オートローダーがベースコントローラーのView.phpをロードしているときに、ファイルを含める方法がわかりません。
php - PHP:PSR-0名前空間クラス内でのPEAR名前空間クラスの自動ロードの競合
私のアプリケーションでは、PSR-0名前空間を使用しています。すべてが美しく機能します!
テンプレートパーサーとしてTwigを使用するまで、TwigはPEAR疑似名前空間を使用します。Twig_Loader_Filesystemのように。
問題は、名前間隔のあるアプリケーション内でTwigを次のように使用したい場合です。
PHPは、オートローダーにという名前のクラスを探すように指示しますTact\ViewManager\Twig_Loader_Filesystem
呼び出し側クラスのPSR-0名前空間なしでPEAR名前空間スタイルクラスを自動ロードするにはどうすればよいですか?
私のオートローダーは、PEARとPSR-0の両方をロードできます。
前もって感謝します!
php - phpオートローダーはどのように機能しますか
phpクラスオートローダーはファイルを開いてクラス名をチェックしますか?私はそれが実際にどのように実装されているかを見てきました。その再帰的であることを私が知っていることの1つ?私が間違っている場合は私に知らせてください
ここで述べたように:オートローダーの概要 PHPオートローダーのしくみ
PHP Autoloaderは、定義されたディレクトリでクラス、トレイト、およびインターフェイスの定義を再帰的に検索します。さらに構成を行わないと、必要なファイルが存在するディレクトリがデフォルトのクラスパスとして使用されます。
ファイル名は規則に従う必要はありません。すべてのファイルでクラス定義が検索されます。クラス名に類似しているファイル、または.phpまたは.incで終わるファイルが推奨されます。サポートされている場合、PHPTokenizerは信頼性の高いクラス定義の検出に使用されます。