<rmcreative>

RSS

Q&A про Yii #2

29 марта 2016

А не кажется ли вам, что самое время подумать о Yii3? Вышел php7 с количеством изменений, достойным нового фрэймворка.

Про Yii 3 мы думаем с самого выхода 2.0. Останавливаться на достигнутом не стоит. Перед ним будет 2.1.

В PHP 7 не так много новых возможностей, действительно полезных для самого фреймворка. Типизация больше приятностей даёт, когда её используешь в приложении. К тому же, типизация возвращаемого значения не поддерживает null, что делает невозможным, например, возврат null из Post::findOne(10). Что действительно стоило бы использовать из PHP 7 не раздумывая, так это password API и генератор случайных чисел.

Какие недостатки Yii видит основная команда разработчиков?

Идеальных фреймворков не бывает. Недостатки, естественно, видим и их не так уж и мало.

  • Нет совместимости с некоторыми PSR.
  • Плагин для Composer-а (fxp) хоть и выполняет свою задачу, но также прилично запутывает и замедляет процесс установки.
  • Попытка решить проблемы клиентсайда хоть и не совсем провальна и даже нормально работает, но не поспевает за grunt и gulp.
  • Ядро фреймворка не отделено должным образом от клиентсайда.
  • Некоторые возможности напрашиваются на выделение в отдельные независимые от Yii библиотеки.
  • Куча разных мелочей, которые либо в планах на 2.1, либо исправляются по ходу дела в 2.0 каждый день.

  • Часть 1

Комментарии RSS

  1. №10406
    fun4life
    fun4life 29 марта 2016 г., 15:07:41

    Когда будет возобновлена работа над созданными но заброшенными репозиториями yiisoft?

    в частности интересует installer и queue.

    Когда будет найдена альтернатива вышеупомянутому composer-плагину?

  2. №10407
    Sam
    Sam 29 марта 2016 г., 16:10:04

    installer и queue создавались не основной командой фреймворка.

    queue изначально занимался @creocoder. Сейчас им планировал заняться @kop. Расширение, в принципе, уже работает. Отсутствует документация и поддержка некоторых бэкендов.

    installer занимался @pana1990. Изначально был план сделать простое решение, чтобы понять, нужен ли он вообще. В текущем виде инсталлер плюсов по сравнению с Composer не имеет, так что релизить его смысла нет.

    Когда будут возобновлены работы зависит от сообщества. Если хотите, можете допилить и послать pull request.

    Когда будет найдена альтернатива вышеупомянутому composer-плагину?

    Альтернатив несколько:

    Решим к 2.1.

  3. №10408
    Евгений
    Евгений 29 марта 2016 г., 18:30:47

    Хотелось бы узнать, когда будет выпущен yii2-mongodb для php7? А то пока там все печально с его поддержкой

  4. №10409
    Ктото
    Ктото 29 марта 2016 г., 19:43:08

    Согласно докам на ГитХабе, чтобы перейти на Yii 2.1 нужно будет действительно много переписать, если проект средний или большой. Вам не кажется, что изменения 2.1 нужно выкатывать плавно??

    Насчет Yii3... Тут даже страшно думать. Веб не изменился ТАК сильно и не изменится в ближайшее время, все можно делать постепенно! php7, bootstrap4, все можно делать от версии к версии, но не все сразу...

  5. №10410
    Sam
    Sam 29 марта 2016 г., 22:06:27

    Евгений, а что именно там не так? Проблемы на GitHub перечислены? Pull request-ы открытые какие-либо из них решают?

    Ктото, версия 2.1 не будет чем-то прямо совсем новым. Не думаю, что придётся переписывать так же сильно, как пришлось при переходе 1.1 → 2.0. bootstrap 4 уже практически готов. В расширении будет отдельная ветка. Ставить можно будет или 3 или 4, какой нужен...

  6. №10411
    Алекей Sc
    Алекей Sc 29 марта 2016 г., 22:39:06

    Ктото

    Насчет Yii3... Тут даже страшно думать. Веб не изменился ТАК сильно и не изменится в ближайшее время, все можно делать постепенно! php7, bootstrap4, все можно делать от версии к версии, но не все сразу...

    Дело не только в сопутствующих технологиях, дело в архитектуре фреймворка. Например с yii1 -> yii2 многое кардинально изменилось в самом ядре, в самом подходе. Тоже самое будет и с yii3. Скорей всего сделают из фрейморка набор несвязанных компонентов, учтут последний бест практис. Вот, например, чтоб сделать последнее - придется больше половины ядра вообще переписать. А думать о yii3 действительно нужно уже сейчас, т.к. нужно еще успешно конкурировать с остальными фреймворками. И - да, веб меняется "ТАК сильно" каждый день, и не только веб, программирование в целом.

  7. №10412
    Ктото
    Ктото 29 марта 2016 г., 22:56:10

    Алекей Sc Че-то вы написали вообще чушь, без обид. Про несвязанные компоненты уже сто раз писали и тут и на хабре и на yiiframework.ru. Про то, что вся поменялось 1=>2 то поменялся синтаксис, все принципы остались.

    Sam github.com/yiisoft/yii2/wiki/Ideas-for-2.1 я вам приведу из-за чего много придется переписать (проект средний-большой):

    • Try to use traits + events instead of behaviors and drop behaviors.
    • Replace YII_DEBUG and other constants with application property?
    • When triggering events, pass data as a separate argument insted of a part of event object (commonly referred to as inconvenient).
    • Replace PJAX with something more stable and low level.
    • Move methods from Yii class into helpers. For example, Yii::getAlias() could be FileHelper::getAlias().
  8. №10413
    Сергей
    Сергей 30 марта 2016 г., 7:07:41

    А думать о yii3 действительно нужно уже сейчас, т.к. нужно еще успешно конкурировать с остальными фреймворками. И - да, веб меняется "ТАК сильно" каждый день, и не только веб, программирование в целом.

    Это проект, которым люди занимаются бесплатно, в свободное от работы время. Какая конкуренция? Если yii3 и выйдет, то лет через 5 минимум. (Для сравнения, разница между первой и второй версиями - 6 лет).

    И - да, веб меняется "ТАК сильно" каждый день, и не только веб, программирование в целом.

    Не так уж и быстро он меняется. Многие технологии 5-10-летней давности и сейчас актуальны.

  9. №10414
    Евгений
    Евгений 30 марта 2016 г., 7:10:30

    Sam, насчет mongodb, в php7 выпустили новый драйвер для mongo и текущее расширение с ним не совместимо. В Issue есть эта проблема, но затегирована на версию 2.1 (

  10. №10415
    Denis Alliswell
    Denis Alliswell 30 марта 2016 г., 11:42:24

    Sam

    bootstrap 4 уже практически готов.

    • alpha 3 на 76% =)
  11. №10416
    Sam
    Sam 30 марта 2016 г., 12:41:39

    Евгений, 2.1 расширения — это не 2.1 фреймворка.

  12. №10417
    Sam
    Sam 30 марта 2016 г., 12:42:16

    Denis Alliswell, расширение тоже практически готово. Pull request пилится.

  13. №10418
    zabachok
    zabachok 30 марта 2016 г., 13:00:54

    Sam, а где расширение под 4-й бутстрап? Дайте ссылочку пожалуйста!

  14. №10419
    Sam
    Sam 30 марта 2016 г., 15:58:25
  15. №10420
    zabachok
    zabachok 30 марта 2016 г., 18:32:31

    А когда планируется слияние? Уж очень нужен 4й бутстрап уже.

  16. №10422
    Sam
    Sam 31 марта 2016 г., 12:05:55

    Начиная с сейчас и заканчивая релизом Bootstrap 4. Как пойдёт, но к релизу будет.

  17. №10434
    Tom
    Tom 05 апр. 2016 г., 3:16:23

    Hi Sam,

    Do you think Yii is cute enough? Should Yii perhaps try to be more cute in 2.1?

  18. №10435
    Sam
    Sam 05 апр. 2016 г., 23:28:49

    "cute"? Why should it be "cute"? :)

    Seriously speaking, I think 2.0 is good enough for real projects but, of course, it could be better. That's why 2.1.

  19. №10450
    Владимир
    Владимир 09 апр. 2016 г., 22:13:38

    Александр, ссылка на этот пост ломает rss, т.к. в ссылке содержится &

  20. №10452
    Sam
    Sam 11 апр. 2016 г., 0:10:22

    Владимир, поправил.

  21. №10459
    Сергей
    Сергей 11 апр. 2016 г., 15:54:52

    А планируется реализация фреймворка в phar архиве. Было вроде обещано еще в начале первой версии. зы: Давно не следил за новостями.

  22. №10468
    Sam
    Sam 14 апр. 2016 г., 15:00:51

    Сергей, у нас такой цели сейчас нет, но проблемы, мешающие это сделать, почти все устранены.

  23. №10480
    Александр Панцерный
    Александр Панцерный 27 апр. 2016 г., 1:28:39

    Ожидаемая дата релиза 2.1?

  24. №10481
    Александр Панцерный
    Александр Панцерный 27 апр. 2016 г., 1:29:54

    Кстати, ссылка на сайт комментатора не работает, если указан протокол https.

  25. №10482
    LAV45
    LAV45 28 апр. 2016 г., 4:31:19

    Try to use traits + events instead of behaviors and drop behaviors.

    Эт вы явно погорячились )) behavior очень удобно использовать как mixin со своими (private) методами и свойствами, + есть наследование. Я честно говоря слабо представляю как это все можно загнать в trait, но что-то мне подсказывает ничего хорошего из этого не получится. Sum, можешь поведать как вы себе представляете новую замену behavior.

  26. №10503
    Sam
    Sam 15 мая 2016 г., 1:58:47

    LAV45, да уже переиначили планы на 2.1. Меньше изменений будет.

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.