Question

J'essaie de mettre à jour mon projet actuel de 1.7 à 1.8. Que dois-je changer pour que ça ne casse pas?

Était-ce utile?

La solution

la plupart des fonctionnalités fonctionneront toujours avec le code hérité. essayez-le sur votre environnement de test et lisez le journal des modifications ZF. Une chose importante est que le chargeur fonctionne différemment maintenant. surtout si vous utilisez le chargement automatique.

Jusqu'au 1.7

require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();

Depuis 1.8

require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('Namespace_');

Autres conseils

Réponse courte:
Exécutez votre suite de tests et vérifiez les résultats;)

Réponse longue:
Je me souviens de deux points où la compatibilité ascendante était rompue:

  1. Si votre amorçage ne définit pas correctement Zend_Locale, ZF > = 1.7.2 générera une exception indiquant qu'il ne peut pas détecter les paramètres régionaux des navigateurs si vous exécutez un script via la console .

  2. Modifications de Zend_View dans la version 1.7.5

Dans Zend Framework 1.8, le constructeur de Zend_Controller_Action a été modifié.

Je dois mentionner cela car il a cassé mon application jusqu'à ce que je trouve cette erreur après des heures de débogage (pour une raison quelconque, xDebug ni PHP lui-même ne m'ont plus montré que le constructeur de ma classe Controller_Action personnalisée n'était plus le même que celui de Zend_Controller_Action ).

Vous devez donc changer votre constructeur de

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())
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top