ZF2 は、パッケージの管理と配布に Composer を使用しています。私の質問は、Zend Loader よりもパフォーマンスが向上するかということです。
1 に答える
まず、Zend\Loader
単なる名前空間であり、Factory、Autoloaders、PluginLoaders、ModuleLoaders などの複数のクラスをフードの下に提示します...したがって、Zend Loader
!==Composer
と異なる概念を比較することは一般的に間違っています。
2 つ目は、composer は「パッケージ マネージャー」ではなく、composer なしで ZF2 を使用できることです。ドキュメントから:
Composer はパッケージ マネージャーではありません。はい、「パッケージ」またはライブラリを扱いますが、プロジェクトごとに管理し、プロジェクト内のディレクトリ (ベンダーなど) にインストールします。デフォルトでは、グローバルに何もインストールされません。したがって、それは依存関係マネージャーです。
Composer の主な関心事は、ライブラリ間の依存関係の管理を容易にすること、オートローディング プロセスの標準化などです。パフォーマンスではありません。また、composer によってインストールされたサードパーティ ライブラリ内のすべてのクラスに対して、プロジェクトの自動ロード ファイルを準備します。これは私たちの生活をより良くします。
一方、Zend Loader 名前空間と関連するクラス。公式ドキュメントからのこの短い要約は非常に簡単です。
ZF2 は、複数のオートローディング戦略を採用しています。たとえば、最もよく使用するクラスのクラス マップがあり、サード パーティのライブラリには PSR-0 スタイルのオートローダーを使用したい場合があります。
Zend Loader 名前空間のクラスについて簡単にまとめます。
- ClassMapAutoloader : パフォーマンスを考慮して設計されています。自動ロード時に不要なファイルシステム操作を回避します。
- StandardAutoloader : PSR-0 準拠のオートローダーです。ファイルシステムへの名前空間 + クラス名の 1:1 マッピングを想定しています。
- ModuleAutolader : Zend\Loader\SplAutoloader インターフェースの特別な実装で、Zend\ModuleManager がさまざまなソースから Module クラスを自動ロードするために使用します。
- PluginClassLoader : 後で取得できるように、プラグイン名をクラス名にエイリアスする単純なメカニズムを提供することで、プラグイン名を -> から -> クラス名に解決します。
そのため、ファイルシステム レベルのパフォーマンスが主な関心事である場合は、クラスマップの自動読み込みとオペコードのキャッシュに注目する必要があります。アプリケーション全体のパフォーマンスに影響を与える指標は多数あり、パフォーマンスを向上させる特効薬はありません。