Sco*_*ren 2 zend-framework brownfield
我们正在考虑将我们的PHP Webapp转换为不使用框架(这会杀死我们)来使用Zend Framework.由于应用程序的大小我不认为从头开始将是一个可行的管理选项,所以我想开始研究如何慢慢从当前的网站结构转换为使用Zend框架,但没有关于这个过程的很多信息.
到目前为止,我的计划是将当前代码库转储到Zend应用程序的public /目录中,修复了我确定会出现的大量问题,然后开始一次重写一个模块.
过去有没有人有这方面的经验,它是如何为你工作的?
我现在已经做了一些.对我来说最有效的是将ZF'放在'旧应用程序周围,所以所有请求都通过ZF.然后我有一个'Legacy'控制器插件,它检查ZF是否可以满足请求,如果没有,则将其发送到旧应用程序:
class Yourapp_Plugin_Legacy extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$dispatcher = Zend_Controller_Front::getInstance()->getDispatcher();
if (!$dispatcher->isDispatchable($request)) {
// send to the old code...
}
}
}
Run Code Online (Sandbox Code Playgroud)
确切地说,您如何将请求发送到旧应用程序取决于它是如何实现的.在一个项目中,我检查了请求,确定了请求进入的旧代码中的哪个文件,然后要求进入.听起来这可能适合您.在另一个项目中,我的解决方案是将所有这些请求路由到ZF项目中的LegacyController,该项目运行旧代码以获取生成的HTML,然后从新项目中将其呈现在Zend_Layout中.
这种方法的优点是,您可以在重写旧应用程序的一部分时逐步引入ZF模块,直到您达到ZF可以提供100%请求的程度.此外,由于ZF项目在运行旧代码之前已初始化,因此旧代码可以使用ZF自动加载器,因此您可以使用更多ZF样式编写的模型开始替换旧代码中的类,并将它们用于两者应用程序的一部分.
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |