2012-04-21 42 views
1

我的插件目錄坐在無法在Zend框架註冊插件的application.ini

application 
    /plugins 
    Dbcount.php 
    ModuleLayout.php 

我無法註冊frontController插件。這裏是我的application.ini代碼。

#Plugin path and namespace 
pluginPaths.Plugins = APPLICATION_PATH "/plugins" 
autoloaderNamespaces[] = "Plugin_" 

#register plugin 
resources.frontController.plugins[] = "Plugin_DbCount" 

它給我下面的錯誤。

Warning: include_once(Plugin/DbCount.php) [function.include-once]: failed to open stream: No such file or directory in /Users/azhararmar/htdocs/joofris/v1/library/Zend/Loader.php on line 146 

Warning: include_once() [function.include]: Failed opening 'Plugin/DbCount.php' for inclusion (include_path='/Users/azhararmar/htdocs/joofris/v1/application/../library:/Users/azhararmar/htdocs/joofris/v1/library:.:/Applications/MAMP/bin/php5.2/lib/php') in /Users/azhararmar/htdocs/joofris/v1/library/Zend/Loader.php on line 146 

Fatal error: Class 'Plugin_DbCount' not found in /Users/azhararmar/htdocs/joofris/v1/library/Zend/Application/Resource/Frontcontroller.php on line 117 

有什麼不對?

回答

3

如果您使用的是默認appnamespace Application,然後存儲在application/plugins/DbCount.php插件應該被命名爲Application_Plugin_DbCount。使用完整的類名,當你註冊:

resources.frontController.plugins[] = "Application_Plugin_DbCount"

+0

我使用自定義命名空間'Plugin_'感謝您的解決方案。但爲什麼它不能用我的代碼 – 2012-04-21 17:12:47

+1

由於自動加載器命名空間在'/ library'中查找而不是在'/ application'下 – prodigitalson 2012-04-21 17:35:06

1

使用的名稱空間一樣,你Plugin類需要被庫下或者需要其他映射它們在哪裏。看起來像你有frontcontroller插件設置正確,但不正確的自動載入定義。

這裏最簡單的事情就是給你的插件命名爲YourAppNamespace_Plugin_YourPluginName

1

它們是ZF中的兩種類型的插件。你正在混合每個部分。

爲了讓你的代碼工作做

1) put application dir in include_path 
2) change directory name plugins to 'Plugin' 
相關問題