Zend framework Zend框架:资源插件与方法

Zend framework Zend框架:资源插件与方法,zend-framework,Zend Framework,我在读关于资源方法的书。它讲述了资源方法将如何覆盖资源插件 但是等等,还有一个资源 插件 (Zend_应用程序_资源_视图)哪个 还可以创建一个名为 看法我们可以有两个视图资源吗? 答案是否定的——我们可以一个接一个 只有一个 在, 一种创建可重用文件的好方法 引导资源和卸载 您的大部分编码都是离散的 类是用来利用资源插件的 ... 其目的是让开发商 应该自己写来封装 他们自己的初始化需要 对我来说,资源方法似乎是一种更直观的初始化资源的方法,那么我为什么要使用插件呢?这只是我更喜欢哪一个的问题

我在读关于资源方法的书。它讲述了资源方法将如何覆盖资源插件

但是等等,还有一个资源 插件 (Zend_应用程序_资源_视图)哪个 还可以创建一个名为 看法我们可以有两个视图资源吗? 答案是否定的——我们可以一个接一个 只有一个

在,

一种创建可重用文件的好方法 引导资源和卸载 您的大部分编码都是离散的 类是用来利用资源插件的 ... 其目的是让开发商 应该自己写来封装 他们自己的初始化需要

对我来说,资源方法似乎是一种更直观的初始化资源的方法,那么我为什么要使用插件呢?这只是我更喜欢哪一个的问题吗?还是在不同的情况下使用

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

通过返回新的Zend_视图 来自_initView()的实例, Zend_应用程序将接受 替换,并且不会尝试 通过运行 Zend\u应用程序\u资源\u要设置的视图 打开标准默认Zend_视图 举例说明我们刚才提到的缺陷 纠正

如果我不返回
Zend_视图
,那就好像我没有该方法一样?我可以说我应该总是从资源方法返回一些东西吗

在这里,我们通过使用 要检索的getResource()方法 Zend_Controller_Front的一个实例 由创建和配置 Zend_应用程序_资源_前端控制器


从上面可以看出,如果我希望我的资源方法由提供的资源插件设置默认值,我可以做一个
getResource()
1st?

回答您的问题:

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

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

资源方法会取代或增加资源插件提供的功能吗?

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

请记住,插件不会神奇地自行运行(前端控制器插件除外,它将始终运行)。只有当application.ini触发它们(或者从自己的方法调用它们)时,才会使用它们

如果我不返回Zend_视图,就好像我没有该方法一样?我可以说我应该总是从资源方法返回一些东西吗?

从资源方法返回某些内容是一种很好的做法,因为这允许其他方法或应用程序的其他部分访问该资源。但是,该方法仍将在没有返回值的情况下运行。但是,如果您添加了一个_initView方法并设置了一个新的Zend_View对象,如果您不使用它,它将不会对您的应用程序产生任何影响

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

对。但我会确保您在本例中返回资源,以便访问资源的任何其他方法都使用您修改的方法,而不是插件设置的方法

就个人而言,我要么坚持application.ini+资源插件,要么坚持资源方法。如果所有资源都在一个地方,那么更容易看到发生了什么