【问题标题】:Zend Framework Plugins Location & NameZend 框架插件位置和名称
【发布时间】:2012-01-07 07:47:26
【问题描述】:

我一直在尝试创建自己的插件,但到目前为止似乎没有什么对我有用,假设我将在应用程序文件夹下拥有我的插件目录,我认为这是默认位置:

 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 吗?如果是这样,我该怎么做?请帮忙!我知道以前有人问过这个问题,但我需要有人以慢得多的速度向我解释。

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    如果插件位于application/plugins/WhosOnline.php,那么Zend 应用程序的默认类名将是Application_Plugin_WhosOnline。

    如果你的 appnamespace 不是 Application,那么这就是你的类的前缀。

    如果您希望将类命名为My_Plugin_WhosOnline,请在library 文件夹中创建一个名为My 的文件夹,其中包含一个名为Plugin 的子文件夹(不是插件),然后将文件放在那里并添加Zend_Loader_Autoloader::getInstance()->registerNamespace('My_');到您的引导程序。

    【讨论】:

      【解决方案2】:

      您所拥有的是正确的,只需在您的 application.ini 中添加以下内容

      appnamespace = "我的"

      【讨论】:

        【解决方案3】:

        在玩了很多之后,我最终做了以下事情,我将这些添加到了我的 application.ini 中:

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

        然后我在 library 文件夹中创建了一个名为 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;
        
                }   
            }
        

        我终于搞定了!

        【讨论】:

          猜你喜欢
          • 2012-02-26
          • 1970-01-01
          • 2011-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-12
          • 1970-01-01
          相关资源
          最近更新 更多