Yii. Что дальше?

Александр Макаров

Yii core team

http://slides.rmcreative.ru/2017/yiiconf-next/

Что происходит с PHP?

  • Yii 1.x стартовал с 5.2.
  • Yii 2.0 требует 5.4.

Сейчас актуален PHP 7.*

  • Заметно быстрее.
  • Лучше работает с объектами.
  • Меньше кушает памяти.
  • Практически не течёт.

Никуда не собирается деваться.

В трендах

  • SOA.
  • DDD.
  • PSR.

SOA частенько превращает отладку в ад из за обилия слоёв и событий.

Философия Yii

  • Только необходимая сложность.
  • API и юзабилити кода прежде всего.
  • Документировать всё.
  • Обратная совместимость и поддержка — это важно.

История Yii

Prado 1.0 (2004)

  • Qiang Xue, релиз в июне 2004.
  • Вдохновлялся Apache Tapestry, Borland Delphi и Microsoft ASP.NET.
  • Финалист Zend gophp5.

Prado 2.0 (2005)

  • Wei Zhuo помог с i18n и l10n.
  • После релиза принято решение переписать проект.

Prado 3.0 (2006)

  • Вдохновлялся Microsoft ASP.NET 2.0.
  • Последняя версия с большими улучшениями.
  • Жива и поддерживается до сих пор.

Yii 1.0 (2006 — 2008)

  • Qiang аносирует альфу Yii.
  • Большинство фич из Prado: ActiveRecord, i18n, l10n и так далее.
  • Вдохновлялись RoR, symfony1, Joomla.
  • Быстрее остальных фреймворков.
  • Быстрый рост сообщества.

yiiframework.ru

  • Запущен в 2009.
  • В него плавно перетекла часть сообщества code-igniter.ru.

Yii 1.1 (2010)

  • Построитель форм, реляционные запросы AR, готовый каркас для unit-тестов и многое другое.
  • Я присодинился к команде.
  • Релизнут новый сайт.
  • Первые книги.

Yii 1.2 (2010)

  • Обновить 1.1.
  • Оставить совместимость с 5.2 и 5.3.
  • Так и не вышел.

Yii cookbook (2011 — 2013)

  • Моя книга.
  • Русская и английская версии.
  • PACKT.
  • Вышло почти отлично (если бы не сюрпризы от PACKT после).

2012 — 2013

  • Carsten Brandt, @CeBe присоединился к команде в 2012.
  • Paul Klimov присоединился к команде в 2013.
  • GitHub.
  • Ещё книги.

Yii 2.0 (2012 — ...)

  • Разрабатывался в приватном репозитории до 2013.
  • Релизнут в 2014.
  • В 2015 к команде присоединился Дмитрий Науменко, @SilverFire.
  • В 2016 разделены релизы расширений и фреймворка.
  • В том же году к нам присоединился Boudewijn Vahrmeijer, @dynasource.
  • В 2017 к нам присоединился Алексей Рогачев, @arogachev.

Qiang покинул проект летом 2015-го

Этого не замечали около 6 месяцев и это очень хорошо.

Yii 2.0

  • PHP 5.4.
  • Неплохо сбалансирован.
  • Покрывает весь традиционный веб.
  • Хорошо упрощает создание REST API.
  • Хорошие инструменты и инфраструктура.
  • Менее слоист, быстр.

Ошибки 2.0

Взяли слишком много всего сразу

И засунули слишком много в ядро.

  • jQuery.
  • PJAX.
  • CAPTCHA.
  • Masked input.
  • Остальной клиентсайд.

fxp composer plugin

Попил много крови, но вроде стабилизировался.

  • Практически не бажит.
  • Усложняет установку.
  • Медленный.

Не использовали многие PSR в разработке

Их приняли, а у нас обратная совместимость.

MVC

  • Нельзя без него (роутинг).
  • Назвали класс "Model".

Другие ошибки

Планы на 2.1

Повышение требований

  • PHP 7.1+.
  • Убиваем HHVM.

Облегчение core

  • asset-ы.
  • Клиентсайд?
  • Устаревшие бекенды кеша.
  • То, что в ядре не нужно.

Официальный LTS

Зачистка

  • Убить @deprecated.
  • Убрать polyfill-ы, которые не нужны для PHP 7.1.
  • Убрать всё для HHVM.

change() для миграций

Не надо будет писать down().

Конфигуратор

Компонент или библиотека для работы с конфигурациями.

Очереди

https://github.com/zhuravljov/yii2-queue

Docker

https://github.com/yiisoft/yii2-docker

Больше атомарных операций

  • upsert.
  • batch w/ ignore.

Возможно, новые шаблоны приложений

  • Продвинутый basic.
  • API.

Абстракция над intl

Возможно, используем polyfill Symfony.

asset-packagist по умолчанию

@hiqsol, @SilverFire и сообщество сделали https://asset-packagist.org/.

Альтернатива fxp composer plugin, значительно быстрее.

Документация

  • Больше обучения.
  • Больше лучших практик.

Новый сайт

http://yiiframework.domain-na.me/

Части вынесены в отдельные проекты и реализованы

  • Админка и поиск для wiki.
  • Комменты для документации.
  • Рейтинги для комментов, wiki и расширений.
  • Рейтинги пользователей.
  • Заменить старый форум.
  • Расширения.
  • Улучшения дизайна.

Хотите помочь?

https://github.com/yiisoft-contrib/yiiframework.com

Что будет с 1.1?

  • EOL, только безопасность и PHP 7.
  • 1.1.19.

Планы на 3.0 (или 2.2?)

  • Революции хочется избежать.
  • Пилим отдельные библиотеки (роутер, контейнер DI, коллекции).
  • Исправить именование.
  • Ещё больше PSR.
  • Отвязать роутинг от MVC.

Возможно, часть из этого удастся ввести в 2.x без революций.

Чем помочь:

Время вопросов!

Что бы вы хотели увидеть в 3.0?