2012-01-06 83 views
2

我一直在嘗試創建自己的插件,至今沒有任何東西可以用於我,我們假設我將在應用程序文件夾下有我的插件目錄,我認爲它是默認位置:Zend Framework插件位置和名稱

application/plugins/WhosOnline.php 

我的插件的內容:

Class My_Plugin_WhosOnline extends Zend_Controller_Plugin_Abstract 

{ 
    public function preDispatch(Zend_Controller_Request_Abstract $request) { 

     echo 'I have reached the plugin'; 
      exit; 

    } 
} 

究竟如何註冊這個插件中的application.ini文件?我曾嘗試:

resources.frontController.plugins.whosonline = "My_Plugin_WhosOnline" 

我也曾嘗試:

resources.frontController.plugins[] = "My_Plugin_WhosOnline" 

我得到的錯誤:

Class 'My_Plugin_WhosOnline' not found 

我怎麼能匹配這些路徑?我是否必須創建目錄application/plugins/My/Plugin/,然後將WhosOnline.php文件放在那裏?我必須註冊命名空間My_Plugin嗎?如果是這樣,我該怎麼做?請幫忙!我知道這個問題以前已經被問過了,但我需要有人向我解釋得慢得多。

回答

0

打了很多與它後,我結束了做下面,我添加了這些對我的application.ini:

autoloaderNamespaces[] = "MyPlugins_" 
resources.frontController.plugins.WhosOnline = "MyPlugins_WhosOnline" 

然後,我創建了一個名爲MyPlugins文件夾,然後文件夾我創建了一個插件文件,名爲WhosOnline.php與內容:

Class MyPlugins_WhosOnline extends Zend_Controller_Plugin_Abstract 
    { 
     public function preDispatch(Zend_Controller_Request_Abstract $request) { 

      echo 'I have reached the plugin'; 
      exit; 

     } 
    } 

我終於得到了它的工作!

1

你有什麼是正確的只添加你的application.ini

appnamespace以下=「我」

2

如果插件位於application/plugins/WhosOnline.php,那麼對於一個Zend應用程序的默認類的名稱將是Application_Plugin_WhosOnline

如果您的應用程序名稱空間不是Application,那麼這將是您的班級的前綴。

如果您希望類被稱爲My_Plugin_WhosOnline,創建一個與名爲Plugin(未插件)子文件夾libraryMy文件夾,把文件存在,並添加Zend_Loader_Autoloader::getInstance()->registerNamespace('My_');到您的引導。