Comments 59
У нас семвер сдвинут на одну позицию вправо, потому получается 2.<major>.<minor>.<patch>
Список изменений, на которые нужно обратить внимание при обновлении описан в UPGRADE.md для 2.1. Перед релизом мы дополнительно структурируем этот список и напишем гайд по обновлению.
прекратится поддержка yii 2.0 и придется перелопачивать половину проекта (а может и больше) из-за потери обратной совместимости.
Yii для себя выбирал именно по причине стабильности (после перехода с 1 на 2 версию он до сих пор работает нормально без проблем при обновлениях). А теперь вот какой подарок. И фирмы у которых большие проекты скорее всего будут откладывать переход на yii2.1 до последнего (многие на 1 версии еще живут) ибо бизнесу нужна стабильность и не самые свежие обновления. А ко мне будут требования знаний и 2.0 и 2.1 версий.
Друзья, сделайте что-нибудь что бы переход на 2.1 был не столь болезненным. Спасибо.
Уже делаем. В 2.0 всё что нужно помечается как @deprecated
, пишется попутно UPGRADE. Ну и это не 1.1 → 2.0. Не такие страшные изменения будут.
Стабильность — это хорошо, но 2.0 уже 4 года. Пора.
прекратится поддержка yii 2.0 и придется перелопачивать половину проекта (а может и больше) из-за потери обратной совместимости.
нет, написано, что в будущем (пока неизвестно когда) прекратится поддержка продукта, которому уже 4 года. По темпам разработки 2.1 это еще как минимум год, да и после релиза 2.1 не думаю, что поддержку сразу закроют.
Добавлю, что в отличии от перехода 1.1 → 2.0, обновление 2.0 → 2.1 – это эволюционное, а не революционное изменение. Основные цели релиза:
- отказ от поддержки устаревших версий PHP, которые мешают использованию новых возможностей в коде ядра и усложняют поддержку проекта в долгосрочной перспективе, включая вопросы безопасности.
- вынос из ядра в отдельные пакеты опциональных составляющих вроде jQuery, DI.
- архитектурные улучшения и изменение публичного API там, где это требуется для реализации новых возможностей.
Мы подготовим детальный гайд по обновлению приложения, чтобы процесс был однозначен и понятен.
Я делал так: Открыл старый добрый тотал командр Alt+F7 поиск Object -> файлы на панель, далее F4 и через notepad++ быстренько подправил.
можно еще перекинуть все файлы на редактор и через поиск и замену «найти и заменить во всех открытых вкладках».
А если воспользоваться IDE PHPStorm, то можно провести поиск использования класса Object и везде поменять его на BaseObject.
и придется перелопачивать половину проекта (а может и больше) из-за потери обратной совместимости
Так получите за это деньги :)
Поскорей бы yii-bootstrap перешёл на 4 версию
Добавлена поддержка JSON для MySQL и PostgreSQL
В доке написано, что
After data population, the value from JSON column will be automatically decoded from JSON according to standard JSON decoding rules.
Это прям автоматом включится? То есть если у нас есть модели с jsonb полями и мы ожидаем что там текст, то после апдейта нам там начнут объекты приезжать?
Да, упустили это. Спасибо, что заметили. Добавлено в UPGRADE.md
Для тех, кто уже успел JSON использовать — вполне вероятно. Мы не специально...
или вы не понимаете, что все проекты, которые уже использовали json-поля, сломали этим обновлением? И если в геттерах еще как-то можно было проверять, а не массив ли там уже в поле, то в сеттере это поведение срабатывает в методе save() и все гарантированно падает, потому что JsonExpression расстраивается до exception, получив строку вместо массива, а преобразование выполнялось в местах разных, но самое позднее — это был метод beforeSave()…
Так вышло. Протащить слом обратной совместимости 2.0.14 специально не планировали. Именно этот кейс не рассматривали, хотя надо было...
Фича в master было смёржена прилично заранее, мы просили всех проверить master за несколько недель до релиза и получили десяток подтверждений от довольно сложных проектов, что всё нормально.
Не рассматриваете вариант выпустить хотфикс, где отключите эту возможность? Все-таки минорный релиз не должен ломать BC
Расскажу, как это было. PR с изменениями на пути к JSON – это более 90 комментов, дифф на 71 файл и овер 3800 строк кода. Там перемешалось много контекстов изменений: исправление одновременно несколько старых проблем, добавление нескольких новых возможностей, оптимизация API, реорганизация кода. Делить его на много мелких не получалось, так как все задачи в рамках этого PR – взаимосвязаны. Вычитать вдумчиво и целиком такой PR не деле оказалось отдельной сложной задачей, на которую не хватало концентрации ни у кого кроме SamDark, за что ему отдельное спасибо.
Я понимаю, что мы (в больше мере – я) косякнули, а этот коммент – лишь попытка оправдаться, но не судите строго. Лучше приходите на GitHub – там всегда не хватает рук и свежего взгляда :)
SilverFire что скажешь?
Интересно, как они тестировали или как у них работало, если при json string падает с исключением AR::save()
Внимание обновляющимся
Похоже, что сломался метод Query::select()
: если вызвать его повторно, то вместо переназначения полей произойдет слияние с удалением указанных ранее полей.
Подробнее в issue: https://github.com/yiisoft/yii2/issues/15676
Спасибо за уведомление, исправлено в коммите 1b3526d8 и войдёт в патч-релиз 2.0.14.1
Идеи посещали всякие. И эта тоже. В 2.1 не планируется. REST не победит для определённых задач никогда. И не должен.
Написали бы лучше есчо один js-фреймворк!
Горшочек, не вари!
Я про то, что JS-фреймворков уже достаточно. Смысла туда лезть с ещё одним никакого. Множество стилей кода, конкурентная среда. В PHP многие фреймворки стали неотличимы друг от друга. Это и хорошо и плохо одновременно и смысл пилить что-то своё, немного не как все, определённо есть. Авторы смотрят на соседей и лучше становятся от этого все фреймворки.
Создал тикет на обновление.
Есть вопрос насчёт @deprecated.
Будет ли
::className()
заменён на ::class
в генераторах Gii в ветках 2.0? Вижу, что в ветке 2.1 уже заменили github.com/yiisoft/yii2-gii/blob/2.1/src/generators/model/Generator.phpИли всё-таки, пока используется совместимость с php-5.4, будет использоваться устаревший метод?
Yii 2.0.14