Pro Zend Frameworkのテクニックに従って、モジュールディレクトリに「Contact」という名前のモジュールを作成しました。ここにディレクトリ構造があります。zendフレームワーク内のモジュールがインデックスコントローラをロードしていません
|_application |_Configs |_application.ini |_controllers |_modules |_Contact |_Controllers |_IndexController |_models |_views Bootstrap.php Bootstrap.php
以下に示すように、アプリケーションディレクトリ内のブートストラップファイルが_initAutoload()機能を有している:
protected function _initAutoLoad(){ $autoLoader = Zend_Loader_Autoloader::getInstance(); $autoLoader->registerNamespace('CMS_'); $resourceLoader = new Zend_Loader_Autoloader_Resource( array('basePath' => APPLICATION_PATH , 'namespace' => '' , 'resourceTypes' => array('form' => array('path' => 'forms/' , 'namespace' => 'Form_') , 'model' => array('path' => 'models/' , 'namespace' => 'Model_')))); return $autoLoader; }
モジュールにおけるブートストラップファイルである:
class Contact_Bootstrap extends Zend_Application_Module_Bootstrap { protected function _initAutoLoad(){ $autoloader=new Zend_Application_Module_Autoloader(array('namespace'=>'Contact_', 'basePath'=>dirname(__FILE__),)); return $autoLoader; } }
アプリケーションconfigフォルダの.iniファイルには、モジュールの連絡先を設定するための次の行があります。
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.modules[] = "" contact.resources.frontController.defaultControllerName = "index"
エラーを表示するgetmessage()関数を持つアプリケーションエラーコントローラをセットアップしました。私は、http://localhost/zf_cms/public/contactをロードしようとすると、それはエラーを与える:
getMessage() : Invalid controller specified (index)
modules-> contact->コントローラ内のインデックスコントローラの名前がContact_IndexControllerです。私はインデックスコントローラのビューも作成しました。
私がバグを見つけて、私がいくつかの情報を見逃しているかどうか教えてください。 ありがとうございます。
ありがとうございました。モジュールディレクトリの名前を小文字に変更するだけでした。 –