用いたチャットアプリについて御紹介しました。Framework2に共通モジュールを追加する方法をご紹介します。Framework2(以下、zf2)では、作成するアプリケーションの各機能をモジュールという単位でを管理します。開発規模が大きくなると、用途ごとにモジュールの追加を行うことになると思いますが、共通で利用する機能やクラス(以下、共通モジュール)は、各モジュールとは別のディレクトリを用意して管理するのが一般的です。└IndexController.php共通モジュールに名前空間を使用している場合、zf2アプリケーションのデフォルト設定では、共通モジュールの名前空間を使用することができません。}}?>試しにIndexControllerのindexActionを実行してみます。※xampp環境を使用していますhttp://localhost/server/ZendSkeletonApplication/public/<実行結果>これは、定義した名前空間でのパスが解決できないことによって発生するエラーです。zf2アプリケーションのデフォルト設定では、アクセスしたURLのルーティング設定に一致するモジュールと、zf2本体の2つまでのパス設定しか行わないため、Sampleクラスまでのパスが解決できていないのです。zf2のインストール手順として公開されている情報の多くは、このことについてあまり触れられていませんが、前述したモジュールとzf2までの名前空間登録はそれぞれ以下の箇所で定義されています。);zf2ではStandardAutoloaderクラスでファイルのオートロードを行います。StandardAutoloaderクラス内部で定数として定義されており、”namespaces”をキーにもつ値は、StandardAutoloader内の処理で名前空間として登録されます。));zf2の名前空間登録はautoregister_zfの要素にtrueを設定しているだけですが、行っていることはモジュールの時と同じです。“autoregister_zf”も”namespaces”同様、StandardAutoloaderクラス内部で定数として定義されており、値にtrueが設定されている場合、自動的にzf2本体までの名前空間を登録します。}“namespaces”,”autoregister_zf”共に、”Zend\Loader\StandardAutoloader”をキーとする要素に設定する連想配列のキーになっています。この、”Zend\Loader\StandardAutoloader”をキーに持つ連想配列は、AutoloaderFactoryクラスのfactoryメソッドの引数として渡ります。名前空間の登録処理を行います。そのため、init_autoloader.phpのfactoryメソッドに渡している連想配列に”namespaces”をキーとした配列を設定すると、好きなように名前空間の登録をすることが出来ます。本記事で使用している、共通モジュール(Common)の名前空間登録は以下のようになります。)));これで先ほどと同じようにIndexControllerのindexActionを実行します。<実行結果>無事にSampleクラスのechoHelloメソッドを実行することが出来ました。以上で、zf2における共通モジュール追加設定のご紹介は終了です。最後までご覧いただき有難うございました。弊社では全国各地の請負い(ご自宅)で作業協力頂ける、フリーランスエンジニアの方を常時探しております。ご興味ある方は、お気軽にお問い合わせ下さい。コメントをキャンセルメールアドレスが公開されることはありません。BlogFeathersFeathersHTMLJavaScript。