Zend Framework:资源插件与方法

时间:2010-07-18 13:01:09

标签: zend-framework

我正在阅读关于资源方法的Zend Framework Book: Survive the Deep End。它讲述了资源方法如何覆盖资源插件。

  

但等等,还有一个资源   插入   (Zend_Application_Resource_View)哪个   也可以创建一个名为的资源   视图。我们可以有两个查看资源吗?   答案是否定的 - 我们可以拥有一个和   只有一个

<{3>}中的

  

创建可重用的好方法   引导资源和卸载   您的大部分编码都是离散的   类是利用资源插件   ......意图是开发者   应该自己写封装   他们自己的初始化需求

对我来说,资源方法似乎是一种更直观的资源初始化方法,为什么我应该使用插件?这只是一个我更喜欢哪个问题?或者他们在不同的情况下使用?

资源方法会替换或添加由提供的资源插件提供的功能吗?因为如果它取代了,我需要确保我初始化所有变量或我需要的任何东西?

  

返回新的Zend_View   来自_initView()的实例,   Zend_Application将接受   更换,不会尝试   通过运行覆盖我们的更改   Zend_Application_Resource_View设置   一个标准的默认Zend_View   我们只是有缺陷的例子   校正

如果我不返回Zend_View,那就好像我没有这个方法一样?我可以说我应该总是从资源方法中返回一些内容吗?

  

在这里,我们通过使用来做同样的事情   要检索的getResource()方法   Zend_Controller_Front的一个实例   由...创建和配置   Zend_Application_Resource_Frontcontroller

从上面可以说,如果我希望我的资源方法具有由提供的资源插件设置的默认值,我可以做getResource()第一个吗?

1 个答案:

答案 0 :(得分:5)

回答你的问题:

我应该使用资源插件还是方法?

我想说这很大程度上取决于个人喜好。正如您从手册中引用的那样,如果您使用资源插件,则在另一个项目中重用代码变得更加容易(因为它更容易移动/测试类而不是从方法中剪切'''''''''''''''') 。在我看来,方法让它更容易看到引导程序中发生了什么,至少在它们开始变得有点复杂之前,在这种情况下将它们转换为插件是有意义的。

资源方法是否会替换或添加资源插件提供的功能?

我相信它的工作方式是在首次实例化bootstrap类时加载并初始化插件。然后,引导程序将通过您的方法并运行它们。如果您的方法名称与插件资源相同,则您的方法将覆盖该插件。但是,您也可以从方法中访问现有资源并对其进行修改,在这种情况下,您的方法将添加到插件提供的功能中。

请记住,插件本身并不神奇地运行(除了前控制器插件,它总是会运行)。它们仅在您的application.ini触发它们时使用(或者如果您使用自己的方法调用它们)。

如果我不返回Zend_View,那就好像我没有这个方法?我可以说我应该总是从资源方法中返回一些内容吗?

最好从资源方法返回一些东西,因为这样可以让其他方法或应用程序的其他部分访问该资源。但是,该方法仍将在没有返回值的情况下运行。但是如果你添加一个_initView方法并设置一个新的Zend_View对象,如果你不对它做任何事情,它将不会对你的应用程序产生任何影响。

我可以说,如果我希望我的资源方法具有由提供的资源插件设置的默认值,我可以执行getResource()

是。但是我会确保你在这种情况下返回资源,只是这样访问资源的任何其他方法都使用你修改过的方法,而不是插件设置的方法。

我个人会坚持使用application.ini +资源插件或资源方法。如果所有资源都集中在一个地方,那么更容易看到发生了什么。