2009-05-01 2 views

ответ

2

большинство функций будут по-прежнему работать с устаревшим кодом. попробуйте в тестовой среде и прочитайте журнал изменений 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_'); 
+0

Более подробную информацию об ответе tharkun в: http://akrabat.com/2009/04/30/zend_loaders-autoloader_deprecated-in -zend-каркасный 18 / – leek

0

Короткий ответ:
запустить свой набор тестов и проверить результаты;)

Длинный ответ:
Я помню две точки, где была нарушена обратная совместимость:

  1. Если самонастройки не устанавливает Zend_Locale правильно, ZF> = 1.7.2 будет сгенерировано исключение, что он не может обнаружить браузеры Locale, если вы запустите скрипт через пульт.

  2. Zend_View changes in 1.7.5

0

В Zend Framework 1.8 конструктор Zend_Controller_Action был изменен.

Я должен упомянуть об этом, потому что он сломал мое приложение, пока не нашел эту ошибку после нескольких часов отладки (по какой-то причине xDebug и сам PHP показали мне, что конструктор в моем пользовательском классе Controller_Action не был таким же, как в Zend_Controller_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()) 
Смежные вопросы