Zend-framework-module-system
提供:Dev Guides
Zend Framework-モジュールシステム
Zend Frameworkは強力なモジュールシステムを提供します。 モジュールシステムには3つのコンポーネントがあります。 彼らは次のとおりです-
- モジュールオートローダー-モジュールオートローダーは、さまざまなソースからのモジュールの検索とロードを行います。 * Pharアーカイブ*としてパッケージ化されたモジュールもロードできます。 モジュールオートローダーの実装は、myapp/vendor/zendframework/zend-loader/src/ModuleAutoloader.phpにあります。
- モジュールマネージャー-モジュールオートローダーがモジュールを見つけると、モジュールマネージャーは各モジュールの一連のイベントを発生させます。 Module Managerの実装は、myapp/vendor/zendframework/zendmodulemanager/src/ModuleManager.phpにあります。
- モジュールマネージャーリスナー-モジュールマネージャーによって起動されたイベントにアタッチできます。 モジュールマネージャーのイベントにアタッチすることで、モジュールの解決と読み込みから、各モジュールの複雑な作業の実行まで、すべてを実行できます。
MVC Webモジュールシステム
Zend FrameworkのMVC Webアプリケーションは通常、モジュールとして記述されています。 1つのWebサイトに、機能ごとにグループ化された1つ以上のモジュールを含めることができます。 MVC指向モジュールの推奨構造は次のとおりです-
module_root/
Module.php
autoload_classmap.php
autoload_function.php
autoload_register.php
config/
module.config.php
public/
images/
css/
js/
src/
<module_namespace>/
<code files>
test/
phpunit.xml
bootstrap.php
<module_namespace>/
<test code files>
view/
<dir-named-after-module-namespace>/
<dir-named-after-a-controller>/
<.phtml files>
構造は前の章で説明したものと同じですが、ここでは一般的です。 * autoload_ファイル*は、 zend-modulemanager で使用可能な高度な Module Manager を使用せずに、モジュールで使用可能なクラスを自動ロードするためのデフォルトメカニズムとして使用できます。
- autoload_classmap.php -クラス名とそれに対応するファイル名の配列を返します。
- autoload_function.php -PHPコールバックを返します。 これは、autoload_classmap.phpによって返されるクラスを利用できます。
- autoload_register.php -autoload_function.phpによって返されるPHPコールバックを登録します。
これらの自動ロードファイルは必須ではありませんが、推奨されます。 スケルトンアプリケーションでは、* autoload_ファイル*を使用していません。
モジュールクラス
Moduleクラスの名前は Module で、モジュールクラスの名前空間は Module name である必要があります。 これは、Zend Frameworkがモジュールを簡単に解決してロードするのに役立ちます。 スケルトン(myapp)アプリケーション、myapp/module/Application/src/Module.phpの*アプリケーション*モジュールコードは次のとおりです-
namespace Application;
class Module {
const VERSION = '3.0.2dev';
public function getConfig() {
return include __DIR__ . '/../config/module.config.php';
}
}
Zend Frameworkモジュールマネージャーは、* getConfig()*関数を自動的に呼び出し、必要な手順を実行します。