Actualizando la aplicación web de Zend Framework 1.7 a 1.8
-
03-07-2019 - |
Pregunta
Estoy intentando actualizar mi proyecto actual de 1.7 a 1.8. ¿Qué tengo que cambiar para que no se rompa?
Solución
la mayoría de las funciones aún funcionarán con el código heredado. Pruébelo en su entorno de prueba y lea el registro de cambios de ZF. Una cosa importante es que el cargador funciona de manera diferente ahora. especialmente si está utilizando la carga automática.
Hasta 1.7
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
Desde 1.8
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('Namespace_');
Otros consejos
Respuesta corta:
Ejecute su suite de prueba y verifique los resultados;)
Respuesta larga:
Recuerdo dos puntos donde se rompió la compatibilidad hacia atrás:
-
Si su programa de arranque no configura Zend_Locale correctamente, ZF > = 1.7.2 lanzará una excepción de que no puede detectar la configuración regional del navegador si ejecuta un script a través de console .
En Zend Framework 1.8 se modificó el constructor de Zend_Controller_Action.
Tengo que mencionar esto, porque rompió mi aplicación hasta que encontré este error después de horas de depuración (por alguna razón, xDebug ni PHP me mostraron que el constructor en mi clase personalizada Controller_Action ya no era el mismo que en Zend_Controller_Action ).
Así que tienes que cambiar tu constructor de
public function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, $invokeArgs = array())
a
public function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array())