0

Zend が次の構造を持つアプリケーションを作成したいと思います。

-SITE
---- application
---- configs
---- layouts
---- modules
-------- default
------------ controllers
------------ forms
------------ models
------------ views
------------ Bootstrap.php
-------- admin
------------ controllers
------------ forms
------------ models
------------ views
------------ Bootstrap.php
---- Bootstrap.php
-- public
-- library
------My
---------Controller
-----------Plugin
-------------ModuleDispatch.php
------Zend
-- index.php

しかし、管理モジュールに到達する際に問題が発生しました。おそらく私の問題はルーティングであり、書かれたプラグインとメソッド preDispatch() を実装していたことに気付きました。プラグインの名前は ModuleDispatch() で、library/My/Controller/Plugin にあります。

私のapplication.iniファイルは次のとおりです。

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.modules = ""


resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.plugins.moduleDispatch=ModuleDispatch

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

しかし、実行すると、常に次のエラーが発生します。

致命的なエラー: クラス 'ModuleDispatch' が /var/www/study/library/Zend/Application/Resource/Frontcontroller.php の 117 行目に見つかりません コール スタック: 0.0916 334628 1. {main}() /var/www/study/ public/index.php:0 0.5735 1248652 2. Zend_Application->bootstrap() /var/www/study/public/index.php:25 0.5735 1248696 3. Zend_Application_Bootstrap_BootstrapAbstract->bootstrap() /var/www/study/library/ Zend/Application.php:355 0.5735 1248696 4. Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap() /var/www/study/library/Zend/Application/Bootstrap/BootstrapAbstract.php:586 0.6280 1282720 5. Zend_Application_Bootstrap_ResourceBootstrapAbstract() /var/www/study/library/ www/study/library/Zend/Application/Bootstrap/BootstrapAbstract.php:626 0.6280 1283088 6. Zend_Application_Resource_Frontcontroller->init() /var/www/study/library/Zend/Application/Bootstrap/BootstrapAbstract.php:683

何が間違っている可能性がありますか?

4

2 に答える 2

0

この問題はapplication.ini、次のようにファイルを変更することで解決されました。

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.modules = ""
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

autoloaderNamespaces.plugins = "Plugins_"
resources.frontController.plugins.moduleDispatch= "Plugins_ModuleDispatch"

resources.frontController.baseUrl=/baseUrlSite/


;DB CONFIGURATION

resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "username"
resources.db.params.password = "password" 
resources.db.params.dbname = "dbname"
resources.db.isDefaultTableAdapter = true


[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
于 2013-08-01T09:26:04.503 に答える
0
resources.frontController.plugins.moduleDispatch=ModuleDispatch

次のようにする必要があります。

resources.frontController.plugins.moduleDispatch = "My_Controller_Plugin_ModuleDispatch"

また、そのクラスに名前を付ける必要がありますMy_Controller_Plugin_ModuleDispatch(大文字と小文字が区別されます)。My_また、オートローダーに名前空間として登録する必要があります。

于 2013-05-01T08:56:49.233 に答える