我们正在考虑将我们的PHP Webapp从不使用框架(这会杀死我们)转换为使用Zend Framework。由于应用程序的规模,我认为从头开始管理不是一个可行的选择,所以我想开始研究如何慢慢地从当前的站点结构转换到使用Zend Framework的站点结构,但关于这个过程的信息并不多。
到目前为止,我的计划是将当前的代码库转储到Zend应用程序的public/目录中,修复我确信会突然出现的大量问题,然后开始一次重写一个模块。
过去有没有人有过这样做的经验,你是怎么做的?
发布于 2012-05-05 02:00:51
我现在已经做了一些这样的事情。对我来说,最有效的方法是将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...
}
}
}您如何将请求发送到旧的应用程序在一定程度上取决于它是如何实现的。在一个项目中,我检查了该请求,从旧代码中确定了该请求将转到哪个文件,然后将其放入。这听起来可能适合你。在另一个项目中,我的解决方案是将所有这些请求路由到ZF项目中的一个LegacyController,它运行旧代码来获得结果超文本标记语言,然后在新项目的Zend_Layout中呈现它。
这种方法的优点是,您可以在重写旧应用程序的部分内容时逐步引入ZF模块,直到您达到可以由ZF处理100%请求的程度。此外,由于ZF项目在旧代码运行之前已经初始化,因此您的旧代码可以使用ZF自动加载器,因此您可以开始使用以更多ZF风格编写的模型替换旧代码中的类,并让应用程序的两个部分都使用它们。
https://stackoverflow.com/questions/10451651
复制相似问题