0

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

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

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

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

先感谢您

4

1 回答 1

1

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

您可能需要做的就是重载receive()接收文件的方法,但不是将文件移动到服务器上的永久位置,您可以让适配器上传到共享点,或者将文件移动到最终目的地,无论它或许。

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

这样,不需要对控制器进行任何更改,您只需修改您的Zend_Form对象以使用一个File元素,但给它您的自定义传输适配器。所有的验证和错误处理都由 Zend_Form 完成,您的适配器负责将文件放在需要去的地方的细节,并且在那里遇到的任何错误都可以传递回表单。因此,无需更改任何控制器代码;所有这些逻辑都存在于您的传输适配器和表单中。

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

于 2012-05-30T17:09:10.433 回答