Новости - yiiframework.ru
Новости - yiiframework.ru
Опубликовать пост
Yii 1, Yii 2.0.31 и прогресс в Yii 3

Всем привет! Мы молчали почти месяц. Работали над всеми версиями фреймворка и ниже расскажем о самом интересном.

Yii 1

Код из master прошёл все тесты на PHP 7.4 без каких-либо изменений. Этот факт стал для нас приятным сюрпризом. Есть ещё пара проблем с PHP 7, которые не покрыты тестами. Как только мы их проверим, будет релиз.

Yii 2.0.31

Выпущен свежий релиз Yii 2. В него вошли несколько исправлений и пара улучшений. В Request была добавлена поддержка заголовка Forwarded для прокси. Также расширена поддержка конфигурации для DI-контейнера в стиле Yii 3.

Но главное в релизе — поддержка PHP 7.4. Было не очень просто достичь её не теряя совместимость со старыми версиями PHP. Несмотря на то, что было потрачено немало времени на поиск возможности сделать это безболезненно, мы справились.

Yii 3

Разработка в общем продвигается, но не так быстро, как хотелось бы. Похоже, прикидки по дате релиза были слишком оптимистичны, но, тем не менее, я всё ещё думаю, что мы тегнем некоторые пакеты Yii 3 и сделаем процесс установки Yii 3 проще, предоставив шаблон приложения. Это будет или до нового года, или в начале следующего.

Что же мы успели с середины ноября?

Концепты, обсуждения и туториалы

Код

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

Корректировки внутренних гайдлайнов

Общая инфраструктура

Финансы

Мы поучаствовали в бета-тестировании финансовой платформы GitHub. Вместе с командой GitHub всё настроили. Также настроили Tidelift, так что теперь помочь Yii финансово можно ещё двумя способами.

Tidelift оказался полезен ещё и с другой стороны. У них отличные чеклисты, например, нужно добавить в каждый репозиторий информацию о том, как репортить проблемы с безопасностью. Во время выполнения этих чек-листом были найдены и поправлены некоторые проблемы в репозиториях Yii.

Единтственный минус — Tidelift не так прозрачен, как OpenCollective. Но обещаю, что буду забирать из OpenCollective меньше на сумму получаемую через Tidelift. Надеюсь, это позволит большему количеству разработчиков, работать над Yii. Если вы хотите тратить на Yii 3 больше времени, но не можете по финансовым причинам, пишите мне (Александру Макарову). Попробуем что-то придумать...

Спасибо!

Спасибо всем кто помогает Yii финансово. Текущий прогресс без вас был бы невозможен.

Отдельное спасибо Somogyi Márton, roxblnfk, Павлу Иванову, Дмитрию Дерепко, thenotsoft за отличные pull request-ы.

читать далее...
Yii 2.0.30, расширения и Yii 3

Всем привет! Вчера я тегнул релизы Yii 2 и расширений и попытался просуммировать прогресс, планы и проблемы Yii 3.

В качестве бонуса опубликовал коллекцию хейт-постов на тему Yii как GitHub репозиторий.

Yii 2

Yii 3

Прогресс:

Планы:

  1. Тегнуть хотя-бы несколько относительно стабильных пакетов к концу года.
  2. Переделать валидацию. Сейчас она делает две вещи: валидирует скалярные значения (assertion) и валидирует набор данных набором assertion-ов. Выглядит очень красиво, но есть проблема с валидацией зависимых данных. Вероятно, будем возвращаться к стилю Yii 2.
  3. Доделать конфигурацию. roxblnfk проделал огромную работу над прототипом. Есть черновики постов, которые будут доделаны и опубликованы на форумах для дальнейшего обсуждения.
  4. Подготовить шаблон приложения. Пока что yiisoft/yii-demo служит нашей песочницей.

Фонд

Текущий бюджет OpenCollective позволяет мне фокусироваться на управлении Yii в целом, релизах Yii 2, ревью кода и немного на самом коде. Сообщество очень сильно помогает, но я уверен, что ещё один сфокусированный на коде член команды ускорил бы разработку Yii 3 очень значительно.

Для того, чтобы увеличить бюджет я собираюсь настроить Tidelift. Насколько я слышал, для компании очень непросто поддержать Yii финансово через OpenCollective так как не совсем понятно, как это провести через бухгалтерию.

Спасибо!

Спасибо всем кто помогает Yii финансово. Текущий прогресс без вас был бы невозможен.

Финансовая помощь — не единственный способ поддержки. Другие способы не менее ценны. Отдельное спасибо нашим постоянным контрибьютерам, которые делятся опытом, отсматривают код, переводят документацию и присылают отличные pull request-ы.

читать далее...
Расширения и Yii 3

Всем привет! Это опять Александр.

// если хотите чтобы в следующий раз это были вы, пишите

Сегодня у нас три релиза расширений для Yii 2:

  • Debug 2.1.11. Добавлена дополнительная сборка мусора, поправлены ошибки, добавлена навигация между запросами.
  • Auth client 2.2.5. Устаревшая зависимость spomky-labs/jose заменена на JWT Framework.
  • Redis 2.0.11. Добавлена поддержка Redis cluster.

После неформального анонса желания выпустить альфу Yii 3 к концу года многие контрибьютеры активизировались. Стало жарко, поэтому что-то из происходящего, вероятно, не попало в резюме ниже.

Завтра я направляюсь в Болгарию на Bulgaria PHP. Буду рассказывать про пакетные принципы. Доклад не совсем про Yii 3, но как раз эти принципы повлияли в той или иной степени на текущую структуру пакетов.

Это последняя запланированная на данный момент конференция. Собираюсь ещё плотнее засесть за фреймворк.

Но хватит про мои планы. Давайте посмотрим, что нового в Yii 3.

Расширена документация:

Спасибо за поддержку!

// Я заметил что многие не знают что Yii можно поддержать не только кодом, но и финансово через OpenCollective. Все доходы и расходы фонда полностью прозрачны и направлены на благо фреймворка и его инфраструктуры.

читать далее...
Yii 2.0.29, расширения и прогресс по Yii 3

Сегодня релизный вторник. Интенсивный. С тех пор как на нескольких конференциях я упомянул что надеюсь и стараюсь тегнуть альфа-версию Yii 3 к концу года, частота pull request-ов в пакеты Yii 3 увеличилась. И, что очень хорошо, они не тривиальные, а те, что действительно приближают дату релиза. Спасибо тем, кто их прислал и извините что время фидбека и ревью сейчас немного увеличено.

Ну а теперь, к релизам Yii 2 и новостям Yii 3...

Yii 2

Итак, вышел Yii 2.0.29. Как обычно, в релиз вошло несколько минорных исправлений. Кроме того, добавлена совместимость с PostgreSQL 12 и начала поддерживаться часть синтаксиса DI-контейнера из Yii 3. Текущий синтаксис никуда не делся. Поддержка нового сделана ради того, чтобы хоть немного смягчить будущую миграцию на новый фреймворк.

Также были выпущены два расширения:

Yii 3

Обсуждения шаблона приложения показали что лучшим решением будет упростить шаблон по максимуму. Изначальная задумка хоть и была интересной, но разобраться в ней удалось не многим.

Somogyi Márton продолжает присылать отличные штуки. В этот раз это network resolver, который помогает безопасно получить информацию о реальном IP пользователя при работе с несколькими прокси-серверами, такими как балансировщик нагрузки.

Кроме этого, Somogyi улучшил пакет data добавив дополнительную валидацию в фильтрах, что особенно полезно при построении фильтров на основе массива критериев.

Александр Картавенко опробовал на travis-билде пакета cache Phan, инструмент для статического анализа.

Павел Иванов и Bill Heaton сделали несколько улучшений в Yii development tool, такие как более точные сообщения об ошибке при клонировании, команда "lint" и немного рефакторинга.

Также были написаны новые документы и главы для руководства:

Спасибо!

Спасибо всем, кто поддерживает Yii. Без вас бы ничего не получилось!

Финансовая поддержка - не единственный способ поддержать Yii. Другие формы поддержки не менее ценны.

Отдельное спасибо тем, кто давно с нами. Тем, кто помогает нам советами, code review, переводами и pull request-ами.

читать далее...
Yii 2.0.28, расширения и прогресс по Yii 3

Свежие новости от команды Yii.

Yii 2

Была выпущена новая версия 2.0.28. Она включает в себя важное исправление безопасности для Request::getUserIP() при работе с Request::$trustedHost и Request::$ipHeaders.

Также в релиз вошли исправления для обработки ошибок в ActiveField PHP 7 и yii\i18n\Formatter который неправильно использовал сложные строки локалей при выборе языка перевода.

Были выпущены следующие расширения:

Yii 3

На официальном форуме была создана тема "как начать контрибьютить в Yii 3".

Обсуждения с Somogyi Márton и его улучшения вылились в улучшение архитектуры и больше возможностей пакета "yiisoft/data". Он будет использован как основа для списков и гридов. Переписка в тикетах и pull request может быть довольно интересна.

Интерфейс дружественных исключений, который был упомянут в прошлый раз, был выделен в отдельный пакет "yiisoft/friendly-exception". Теперь любой пакет может реализовать интерфейс если хочет, чтобы Yii или другой совместимый обработчик ошибок показывал дополнительную информацию. Обсуждение на форуме.

@romkatsu написал юнит-тесты для redirect middleware.

Дмитрий Дерепко поправил yiisoft/log-target-email.

Благодаря Павлу Иванову DI контейнер теперь обращается к автозагрузке классов если определения в самом контейнере нет. Это позволяет не прописывать явно классы без интерфейса.

Рустам Мамадаминов реализовал middleware для аутентификации.

Павел Чаплыгин портировал компонент Flash.

Рендеринг view стал умнее. Теперь коллизии имён параметров невозможны.

Пакет RBAC приведён в рабочее состояние. Есть несколько концептуальных изменений по сравнению с Yii 2.

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

Спасибо!

Спасибо всем, кто участвует в разработке и финансировании Yii. Вместе у нас всё получится.

читать далее...
Yii 2.0.27, Debug 2.1.9 и прогресс по Yii 3

Yii 2

Yii 2 получил очередной релиз версии 2.0.27. В этот раз кроме багфиксов в него вошли несколько улучшений.

Также обновилось расширение debug 2.1.9. В него вошло всего одно, но очень важное, исправление. Неправильно отображалось время относительно прошлого логирования на странице "logs".

Yii 3

  • Wilmer Arambula продолжает заниматься портированием пакетов из Yii 2. На этот раз widgets.
  • Тесты, помогающие стабилизировать код фреймворка, очень важны. romkatsu поделился тестами для CSRF middleware и callback middleware.
  • yiisoft/data прошёл стадию прототипа и теперь является вполне рабочим пакетом благодаря Павлу Чаплыгину и Somogyi Márton. Дизайн пакета ещё будет меняться, но он точно станет отличной базой для построения REST API и дата-виджетов, таких как GridView.
  • Пакет yiisoft/core был убит. Репозиторий был удалён и затем восстановлен чтобы сохранить issue для истории. Общего пакета "ядро", который занимается всем как в Yii 2 не будет. Вместо него будут "объединяющие" пакеты вроде yiisoft/yii-web. Они будут более сфокусированы: классический веб, консоль и так далее.
  • Был проведён эксперимент по использованию Cycle ORM. Первые результаты выглядят многообещающе и, вероятно, Cycle станет одной из официально рекомендуемых библиотек для работы с базами данных.
  • Другой эксперимент по использованию RoadRunner как вебсервер показал вкусные цифры касательно производительности, но была проблема с сессиями. Сейчас она исправлена. Несмотря на то, что в при написании кода стоит очень аккуратно обращаться с состоянием, разница в производительности делает его привлекательным и мы будем проверять фреймворк чтобы он работал в подобных окружениях.
  • Пакет yiisoft/strings был доработан ещё немного.
  • Обработчик ошибок получил возможность получить стектрей для фатальных ошибок, которая присутствовала в Yii 2.
  • Ещё одна интересная возможность для обработчика ошибок — "дружественные исключения". Реализовав интерфейс FriendlyExceptionInterface можно дать пользователю инструкции по тому, как исправить проблему. Они будут показаны на странице исключения.
  • Обновился roadmap.

На англоязычных форумах идут интересные дискуссии. Стоит почитать "Using Cycle ORM" и "Yii3 Properties".

Несколько человек высказали желание заняться портированием слоя для работы с базами данных из Yii 2. Если всё пойдёт хорошо, то можно будет работать в привычном стиле... или использовать Cycle или Doctrine.

читать далее...
Yii 2.0.26 и прогресс по Yii 3

На прошлой неделе выпустить релизы не удалось так как часть pull request-ов в Yii 2 нуждались в полировке, но сегодня релиз был тегнут.

Обновление исправляет ряд ошибок и ничего не должно ломать.

Что касается Yii 3, работы идут. В частности, есть прогресс по новым провайдерам данных. Код ещё не финальный, местами грубый. Общая идея описана на форуме.

Параллельно с пакетом data, Wilmer Arambula продвинулся в работе над view в процессе добавив дополнительные методы в пакет files.

Hubert Strychalski реализовал несколько важных тестов для middleware.

читать далее...
Релизы apidoc, debug и прогресс по Yii 3

Команда Yii выпустила два релиза расширений:

Прогресс по Yii 3 за неделю:

  • Отполировали кеш. Драйверы распилили в отдельные пакеты. Это позволит как релизить независимо, так и использовать в composer зависимости типа ext-*. Спасибо, Александр Картавенко!
  • Причесали логгер.
  • Написана документация по request и response.
  • Удалось запустить Yii 3 под RoadRunner. Время ответа радует.
  • Рустам Мамадаминов реализовал CSRF middleware. Спасибо!

В дополнение, написана статья в wiki, рассказывающая как переместить исходники в приложении на Yii 2 в директорию src.

читать далее...
Yii 2.0.25, расширения и прогресс по Yii 3

Yii 2

  • Yii 2.0.25. Багфикс-релиз. Ничего сломать не должен, но почитать CHANGELOG, как обычно, полезно.
  • Bootstrap 4 2.0.7. Добавлена возможность менять CSS-классы через конфиг DI-контейнера.
  • Gii 2.1.1.

Yii 3

  • Serializer выделен в отдельный пакет.
  • Архитектура пакета Cache пересмотрена. Стало проще и, вероятно, эффективней.
  • В Yii demo добавлен пример отсылки почты, простой layout и logout/login. Выглядит пока немного сложновато, но мы работаем над тем, чтобы было проще.
  • В Yii web появились сессия, user и identity.
  • Html был выделен в отдельный пакет.

Спасибо Александру Картавенко, Булату Дамдинову и Wilmer Arambula за помощь. Работать вместе эффективней и приятней.

читать далее...