【问题标题】:Where to put plugins in a Zend Framework websiteZend Framework 网站中插件的放置位置
【发布时间】:2010-03-08 10:58:43
【问题描述】:

问题很简单:我有一个 Zend 框架的控制器插件。

我应该把它放在“library/Plugin”文件夹中,还是放在“application/plugins”中。

(顺便说一句,它现在在库/插件中,但这适用于 Linux 和 Mac Os X,但不适用于 Windows,所以我认为这可能不是正确的地方)

谢谢

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    如果它是 controller plugin,它会进入“应用程序/插件”。
    如果它是一个通用插件(即 Utility Classes 等),它会进入 /library/*,其中 * 遵循 Zend Loader 规则。

    【讨论】:

    • 但是如果我的控制器名称是 My_Plugin_Blah,将自动加载在文件夹“application/plugins/Blah.php”中找到它(虽然模块名称“My”没有问题,但它已正确配置)
    • 好吧,我自己回答,自动加载实际上是在应用程序/插件中找到的
    【解决方案2】:

    我通常会放置特定于我的应用程序的所有内容,例如不修改到相应的应用程序文件夹就不能重用。

    对于通用插件,我在库中创建了一个新文件夹。该文件夹是在 Zend 库文件夹之后建模的,涉及名称,例如My/Controller/Action/Helper 或 My/Controller/Plugin 等。不过,把东西放在那里是可选的,因为你也可以把它放在适当的应用程序文件夹中。我只是喜欢这种区别。

    我从来没有把任何东西放到标准的 Zend 发行版中。这会在更新时丢失。

    【讨论】:

    • 如果我把它放在 My/Controller/Plugin 中,自动加载器会正确计算包含路径吗?那么我应该如何命名我的控制器呢?
    • @Matthieu 按照惯例,自动加载器会将类名中的下划线更改为斜线以查找包含路径上的文件,因此如果类名是 My_Controller_Plugin_Something,加载器将尝试加载 My/Controller/Plugin /某事.php。但是,对于插件,您可能还必须配置插件代理。见framework.zend.com/manual/en/zend.controller.plugins.htmlframework.zend.com/manual/1.10/en/zend.loader.pluginloader.html
    • @Matthieu 实际上,您对插件的含义有些模糊。我只是假设您在谈论控制器插件。但我不确定您指的是不是视图或操作助手
    • 是的,我指的是控制器插件,我想简单地命名我的插件:My_Plugin_Acl 但我可以在“插件”之前添加“Controller_”,尽管我宁愿避免这样做(愚蠢的原因,它更短,我可以没有它)
    • @Matthieu,在 PHP5.3 之前,这些长名称构成了命名空间。我知道他们写起来可能很乏味,但他们有目的。它们也是 Zend 代码约定的一部分,我强烈建议您遵循:framework.zend.com/manual/en/coding-standard.html
    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2011-06-25
    • 2018-12-01
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多