2010-11-03 3 views
3

Всякий раз, когда я обновляю Zend Framework, я изучаю списки изменений (http://framework.zend.com/changelog), но все еще чувствую, что я переживаю небольшой скачок веры, чтобы обеспечить, чтобы мое приложение не ломалось.Обновление Zend Framework от версии X до версии Y

До сих пор у меня не было никаких проблем. Большая часть приложения находится под единичным тестом и веб-тестом. Но тесты не имеют 100% -ного охвата, поэтому весь процесс обновления ZF все еще немного нервирует.

Таким образом, вопрос ...

Где бы я смог найти окончательную информацию об изменениях интерфейса и «задом разрывов совместимости» при переходе с «ZF версии X» до «ZF версии Y»?


Кроме того, если у кого есть какие-либо общие советы по обновлению на обновления кода поставщика гладко то, что будет представлять интерес.

т.е.

  • Вы пишете набор модульных тестов для работы на всех каркасных компонентов, используемых вашим приложением?

Кроме того, любые конкретные советы по обновлению от ZF 1.8 до 1.11 будет приветствоваться в комментариях.

ответ

2

ZF-х имеют strict release policy

  1. Основной релиз может содержать какие-либо изменения, включая исправление ошибок, обратно совместимые функции и расширение функциональных возможностей, а также в обратном направлении несовместимых релизы.
  2. Небольшая версия может содержать только обратные совместимые изменения, включая исправления ошибок и обратно совместимые функции и функциональные возможности.
  3. Мини-релиз может содержать только исправления ошибок. Обратите внимание, что никаких новых функций, функциональных улучшений или изменений API не разрешено вообще. Структура должна выглядеть и вести себя одинаково в мини-версиях.

В примечаниях к выпуску обычно содержатся сведения об изменениях, которые не соответствуют обратной совместимости. И, как вы можете видеть, это может произойти только между основными выпусками, которые от ZF1 до ZF2, но не от ZF1.8 до ZF1.11.

Теперь, просто потому, что может не случиться, это не значит, что они не происходят, но из моего опыта все изменения были обратно совместимы. Я помню, что они изменили загрузку автозагрузчика и статического фильтра в некоторой предыдущей версии. ZF будет продолжать работать, как обычно, но повышать уведомления об отказе. Поэтому вам предлагается принять меры, но он не нарушит ваше приложение, если вы этого не сделаете.

В принципе, до тех пор, пока ваше приложение испытывает Unit-Tested, у вас не должно быть (или очень мало) проблем с обновлением. Обновите, запустите тест, если что-то сломается, исправьте. Нажмите обновленную версию для своей разработки и посмотрите, есть ли у нее какие-либо уведомления или предупреждения.

Если вы действительно хотите узнать все изменения, выполните SVN Diff между своей старой версией и версией, которую вы хотите обновить.

+0

Спасибо за информацию.Я немного расстроился, когда обнаружил, что интерфейс Zend_Validate_StringLength изменяется между 1.9 и 1.10 Так что, я думаю, это редкий частный случай. см .: http://www.eatmybusiness.com/food/2010/04/17/gotcha-zend_validate_stringlength-interface-changes-between-versions-19-and-110/153/ –

+0

@JW это один пример обратного совместимое изменение. Если вы не пройдете в массиве, конструктор будет извлекать переданные аргументы и использовать их, как это было в старой сигнатуре метода. См. [Исходный код для '__construct'] (http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Validate/StringLength.php) – Gordon

+0

о да ... Я вижу func_get_args. .. Спасибо за это. Aaaaa, я чувствую себя более расслабленным: o) –

Смежные вопросы