我正在尝试将当前项目从1.7更新为1.8。我需要改变什么才能不破坏?
答案 0 :(得分:2)
大多数功能仍可用于旧代码。在您的测试环境中试用它并阅读ZF更改日志。一件重要的事情是装载机现在的工作方式不同。特别是如果你使用自动加载。
直到1.7
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
自1.8起
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('Namespace_');
答案 1 :(得分:0)
简答:
运行测试套件并检查结果;)
答案很长:
我记得向后兼容性被打破的两点:
如果您的引导没有正确设置Zend_Locale,ZF> = 1.7.2将抛出异常,如果您通过 console 运行脚本,它无法检测浏览器Locale。 / p>
答案 2 :(得分:0)
在Zend Framework 1.8中,修改了Zend_Controller_Action的构造函数。
我必须提到这一点,因为它破坏了我的应用程序,直到我在调试数小时后发现这个错误(由于某种原因xDebug和PHP本身向我显示我的自定义Controller_Action类中的构造函数与Zend_Controller_Action中的构造函数不同)。
所以必须从
更改构造函数public function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, $invokeArgs = array())
到
public function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array())