SymfonyのAutoloaderは、必要なファイルのみをロードするのに十分なほど賢いですか?
-
22-09-2019 - |
質問
Symfonyがファイルを自動装着できることを知っています spl_auto_register
、しかし、それは十分に賢いですか?
単に a.php ロードするには必要です、それもロードされますか b.php?
解決
Autoloaderは、要求されたクラスをインスタンス化するために必要なファイルのみをロードします。
他のヒント
Autoloaderは、キー値のペアの配列を保存することで機能します。
classname => /full/path/to/class
Symfony 1.3/1.4では、2つのキャッシュファイルが作成されます。 SFCOREAUTOLOADによって作成され、に保存されたコアクラス用の1つ /cache/project.autoload. 。プロジェクトディレクトリ内から自動装備されているクラスの場合、キー値のペアの配列はに保存されます /cache/_app_/_env_/config/config_autoload.yml.php. 。このファイルは、構成ハンドラーsfautoloadconfighandlerによって生成されます。
覚えておくべきいくつかの有用なポイント:
- プロジェクト内のすべてのクラスがautoloadedであるわけではなく、autoloadedファイルはautoload.ymlによって指定されています(in) sf_lib_dir/config/config)。独自のautoload.ymlを作成して、プロジェクト構成dir(またはアプリケーション構成dirも思う)にドロップすることができます。
- 開発環境で実行するとき、クラスを自動装備できない場合、SymfonyはAutoloadキャッシュを再構築し、その仮定が新しいファイルを見つけることを望んでいます。これにより、特定のユースケースでアプリが遅くなる可能性があるため、sfautoloadagain :: unregister()を使用します。
所属していません StackOverflow