Pregunta

Estoy intentando actualizar mi proyecto actual de 1.7 a 1.8. ¿Qué tengo que cambiar para que no se rompa?

¿Fue útil?

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:

  1. 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 .

  2. Zend_View cambia en 1.7.5

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())
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top