Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将web应用程序从Zend Framework 1.7更新到1.8_Php_Zend Framework - Fatal编程技术网

Php 将web应用程序从Zend Framework 1.7更新到1.8

Php 将web应用程序从Zend Framework 1.7更新到1.8,php,zend-framework,Php,Zend Framework,我正在尝试将我当前的项目从1.7更新到1.8。我必须更改什么才能使其不中断?大多数功能仍然适用于旧代码。在您的测试环境中试用,并阅读ZF更改日志。一件重要的事情是,装载机现在的工作方式不同了。特别是如果你使用自动加载 直到1.7 require_once 'Zend/Loader.php'; Zend_Loader::registerAutoload(); 从1.8开始 require_once 'Zend/Loader/Autoloader.php'; $loader = Zend_Load

我正在尝试将我当前的项目从1.7更新到1.8。我必须更改什么才能使其不中断?

大多数功能仍然适用于旧代码。在您的测试环境中试用,并阅读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_');

简短回答:
运行测试套件并检查结果;)

详细回答:
我记得有两点破坏了向后兼容性:

  • 如果引导未正确设置Zend_区域设置,ZF>=1.7.2将引发一个异常,即如果通过控制台运行脚本,它无法检测浏览器区域设置


  • 在Zend Framework 1.8中,修改了Zend_控制器_操作的构造函数

    我必须提到这一点,因为它破坏了我的应用程序,直到我在数小时的调试后发现这个错误(出于某种原因,xDebug或PHP本身告诉我,自定义Controller\u Action类中的构造函数不再与Zend\u Controller\u 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())