2010-07-18 112 views
4

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

别急,还有一个资源 插件 (Zend_Application_Resource_View),这 还可以创建一个名为资源观 。我们可以有两个视图资源吗? 答案是否定的 - 我们可以有一个且只有 一个

Zend Framework Manual

一个很好的方法来创建可重用的 引导资源和卸载 多的编码离散 类是利用资源插件 ...的意图是,开发者 应该自己写封装 自己初始化的需求

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

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

通过返回从_initView()新的Zend_View 例如, Zend_Application将接受 更换并不会试图通过运行 Zend_Application_Resource_View 覆盖我们的修改设置 了一个标准的默认的Zend_View 实例与缺点我们只是 纠正

,如果我不返回一个Zend_View,这将是,如果我没有足够的方法?我可以说我应该总是从资源方法中返回一些东西吗?

在这里,我们做同样的事情用 的的getResource()方法,通过 Zend_Application_Resource_Frontcontroller

从以上检索 创建和配置前端控制器 的一个实例,我可以说,如果我希望我的资源方法具有由提供的资源插件设置的默认值,我可以做一个getResource() 1st?

回答

5

回答您的问题:

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

我会说这很大程度上取决于个人喜好。正如你手册中的引用所述,如果你使用资源插件,在另一个项目中重复使用代码将变得更加容易(因为移动/测试一个类更容易,而不是从一个方法中删除“粘贴”文本) 。在我看来,方法使它更容易看到自举过程中发生了什么,至少在开始变得有点复杂之前,在这种情况下,将它们转换为插件是有意义的。

将资源方法替换或添加到资源插件提供的功能吗?

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

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

如果我不返回一个Zend_View,它会像我没有方法?我可以说我应该总是从资源方法中返回一些东西吗?

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

我可以说,如果我想我的资源的方法有通过所提供的资源插件的默认设置,我可以做的getResource()

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

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