Aggiornamento dell'app Web da Zend Framework 1.7 a 1.8
-
03-07-2019 - |
Domanda
Sto cercando di aggiornare il mio progetto attuale dall'1.7 all'1.8. Cosa devo cambiare in modo che non si rompa?
Soluzione
la maggior parte delle funzionalità funzionerà comunque con il codice legacy. provalo nel tuo ambiente di test e leggi il registro delle modifiche di ZF. una cosa importante è che ora il caricatore funziona diversamente. soprattutto se stai usando il caricamento automatico.
Fino all'1.7
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
Dal 1.8
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('Namespace_');
Altri suggerimenti
Risposta breve:
Esegui la tua suite di test e controlla i risultati;)
Risposta lunga:
Ricordo due punti in cui la compatibilità con le versioni precedenti era interrotta:
-
Se il bootstrap non imposta correttamente Zend_Locale, ZF > = 1.7.2 genererà un'eccezione che non è in grado di rilevare le impostazioni internazionali del browser se si esegue uno script tramite console .
In Zend Framework 1.8 è stato modificato il costruttore di Zend_Controller_Action.
Devo menzionarlo, perché ha rotto la mia applicazione fino a quando non ho scoperto questo errore dopo ore di debug (per qualche motivo xDebug né PHP stesso mi hanno mostrato che il costruttore nella mia classe Controller_Action personalizzata non era più lo stesso di Zend_Controller_Action ).
Quindi devi cambiare il tuo costruttore da
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())