我正在阅读关于资源方法的Zend Framework Book: Survive the Deep End。它讲述了资源方法如何覆盖资源插件。
<{3>}中的但等等,还有一个资源 插入 (Zend_Application_Resource_View)哪个 也可以创建一个名为的资源 视图。我们可以有两个查看资源吗? 答案是否定的 - 我们可以拥有一个和 只有一个
,
创建可重用的好方法 引导资源和卸载 您的大部分编码都是离散的 类是利用资源插件 ......意图是开发者 应该自己写封装 他们自己的初始化需求
对我来说,资源方法似乎是一种更直观的资源初始化方法,为什么我应该使用插件?这只是一个我更喜欢哪个问题?或者他们在不同的情况下使用?
资源方法会替换或添加由提供的资源插件提供的功能吗?因为如果它取代了,我需要确保我初始化所有变量或我需要的任何东西?
返回新的Zend_View 来自_initView()的实例, Zend_Application将接受 更换,不会尝试 通过运行覆盖我们的更改 Zend_Application_Resource_View设置 一个标准的默认Zend_View 我们只是有缺陷的例子 校正
如果我不返回Zend_View
,那就好像我没有这个方法一样?我可以说我应该总是从资源方法中返回一些内容吗?
在这里,我们通过使用来做同样的事情 要检索的getResource()方法 Zend_Controller_Front的一个实例 由...创建和配置 Zend_Application_Resource_Frontcontroller
从上面可以说,如果我希望我的资源方法具有由提供的资源插件设置的默认值,我可以做getResource()
第一个吗?
答案 0 :(得分:5)
回答你的问题:
我应该使用资源插件还是方法?
我想说这很大程度上取决于个人喜好。正如您从手册中引用的那样,如果您使用资源插件,则在另一个项目中重用代码变得更加容易(因为它更容易移动/测试类而不是从方法中剪切'''''''''''''''') 。在我看来,方法让它更容易看到引导程序中发生了什么,至少在它们开始变得有点复杂之前,在这种情况下将它们转换为插件是有意义的。
资源方法是否会替换或添加资源插件提供的功能?
我相信它的工作方式是在首次实例化bootstrap类时加载并初始化插件。然后,引导程序将通过您的方法并运行它们。如果您的方法名称与插件资源相同,则您的方法将覆盖该插件。但是,您也可以从方法中访问现有资源并对其进行修改,在这种情况下,您的方法将添加到插件提供的功能中。
请记住,插件本身并不神奇地运行(除了前控制器插件,它总是会运行)。它们仅在您的application.ini触发它们时使用(或者如果您使用自己的方法调用它们)。
如果我不返回Zend_View,那就好像我没有这个方法?我可以说我应该总是从资源方法中返回一些内容吗?
最好从资源方法返回一些东西,因为这样可以让其他方法或应用程序的其他部分访问该资源。但是,该方法仍将在没有返回值的情况下运行。但是如果你添加一个_initView方法并设置一个新的Zend_View对象,如果你不对它做任何事情,它将不会对你的应用程序产生任何影响。
我可以说,如果我希望我的资源方法具有由提供的资源插件设置的默认值,我可以执行getResource()
是。但是我会确保你在这种情况下返回资源,只是这样访问资源的任何其他方法都使用你修改过的方法,而不是插件设置的方法。
我个人会坚持使用application.ini +资源插件或资源方法。如果所有资源都集中在一个地方,那么更容易看到发生了什么。