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()*関数を自動的に呼び出し、必要な手順を実行します。