我试图弄清楚如何为我的 zend 框架应用程序实现插件架构之类的东西。
假设我有一些文件的上传公式。如果没有“插件”,我想将一些默认上传到我的网络服务器。但是,如果我插入我的“特定上传插件”,我希望将文件上传到共享点(仅作为示例)。
但我真的想在不改变太多代码的情况下实现这一点。我可以更改一些配置文件,但我根本不需要更改任何控制器代码。
有人可以指出我将如何实现这一目标的一些教程或方法吗?或者只是这类任务的一些最佳实践?
先感谢您
我试图弄清楚如何为我的 zend 框架应用程序实现插件架构之类的东西。
假设我有一些文件的上传公式。如果没有“插件”,我想将一些默认上传到我的网络服务器。但是,如果我插入我的“特定上传插件”,我希望将文件上传到共享点(仅作为示例)。
但我真的想在不改变太多代码的情况下实现这一点。我可以更改一些配置文件,但我根本不需要更改任何控制器代码。
有人可以指出我将如何实现这一目标的一些教程或方法吗?或者只是这类任务的一些最佳实践?
先感谢您
我的第一个想法是扩展Zend_File_Transfer_Adapter_Http
用于处理File
Zend Framework 中标准上传元素的适配器。
您可能需要做的就是重载receive()
接收文件的方法,但不是将文件移动到服务器上的永久位置,您可以让适配器上传到共享点,或者将文件移动到最终目的地,无论它或许。
您的构造函数可以设置适配器特定的选项,例如共享点 IP 地址和凭据以及您需要的任何其他选项。
这样,不需要对控制器进行任何更改,您只需修改您的Zend_Form
对象以使用一个File
元素,但给它您的自定义传输适配器。所有的验证和错误处理都由 Zend_Form 完成,您的适配器负责将文件放在需要去的地方的细节,并且在那里遇到的任何错误都可以传递回表单。因此,无需更改任何控制器代码;所有这些逻辑都存在于您的传输适配器和表单中。
希望这有助于为您指明正确的方向。