如何在zend框架中实现插件架构

时间:2012-05-30 12:28:56

标签: zend-framework

我想弄清楚如何为我的zend框架应用程序实现类似插件架构的东西。

假设我有一些文件的上传公式。如果没有“插件”,我想将一些默认上传到我的网络服务器。但是,如果我插入“specific-upload-plugin”,我希望将文件上传到sharepoint(仅作为示例)。

但我真的希望在不改变任何代码的情况下实现这一目标。我可以改变一些配置文件,但我根本不需要更改任何控制器代码。

有人能指出一些关于我将如何实现这一目标的教程或方法吗?或者只是关于这类任务的一些最佳实践?

提前谢谢

1 个答案:

答案 0 :(得分:1)

我的第一个想法是扩展Zend_File_Transfer_Adapter_Http,它是用于处理Zend Framework中标准File上传元素的适配器。

您可能需要做的就是重载receive()方法以接收文件,但不是将文件移动到服务器上的永久位置,而是可以将适配器上传到sharepoint,或者处理移动文件到达最终目的地的任何地方。

您的构造函数可以设置适配器特定选项,例如sharepoint IP地址和凭据以及您需要的任何其他选项。

这样,不需要对控制器进行任何更改,只需修改Zend_Form对象以使用File元素,但为其提供自定义传输适配器。所有验证和错误处理都由Zend_Form完成,您的适配器负责处理将文件放在需要的位置的详细信息,并且可以将遇到的任何错误传递回表单。因此,无需更改任何控制器代码;所有逻辑都存在于您的传输适配器和表单中。

希望这有助于指明你正确的方向。