Конференция PHP Russia. Оффлайн 1 марта 2021, Москва.
Русскоязычное сообщество Yii
Yii — это высокоэффективный основанный на компонентной структуре PHP-фреймворк для разработки масштабных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить процесс веб-разработки. Название Yii (произносится как Yee или [ji:]) означает простой (easy), эффективный (efficient) и расширяемый (extensible).
2.0.39
Быстрый, безопасный и профессиональный PHP Framework
Быстрый
Yii запускает только то, что используется, имеет мощную систему кэширирования и изначально нацелен на отличную работу с AJAX.
Безопасный
В Yii есть всё для обеспечения безопасности: валидация, фильтрация, защита от SQL-инъекций и XSS.
Профессиональный
Yii помогает писать чистый гибкий код. Фреймворк следует MVC и чётко отделяет логику от отображения.
Новости - yiiframework.ru
Опубликовать пост
Новости Yii 2020, выпуск 7

Всем привет! Это очередной выпуск новостей Yii. Как обычно, в выпуске вас ждут релизы Yii 2, прогресс Yii 3, важные вести о Yii 1 и другие новости. Приятного чтения и будьте здоровы. - Александр Макаров

Фонд

С прошлого выпуска пришлось прилично отвлечься на фонд, а именно на то, как средства перебрасываются из GitHub Sponsors в OpenCollective. С GitHub они уходили нормально, а вот куда - большой вопрос. Потребовалось время, чтобы разобраться, но проблему удалось решить.

Ещё одна новость, частично связанная с фондом. Автор httpsoft/http-message, Евгений Зюбин, вероятно присоединится к команде фулл-тайм если/когда это позволит пополнение фонда. Если вы или ваша компания хотите получить Yii 3 раньше, можете помочь.

Инфраструктура

Мы постоянно улучшаем процесс тестирования пакетов:

  • В пакеты со стабильной версией добавлена проверка Roave backwards compatibility. Она проверяет что публичный API не сломан по-сравнению с предыдущим стабильным релизом.
  • Мы продолжили перевод тестов с Travis на GitHub actions как для Yii 2, так и для Yii 3. Actions классные, а Travis не так давно порезал поддержку OpenSource. Хорошо что мы начали переход заранее.
  • Мы решили не собирать покрытие кода через PHPUnit с последующей отсылкой его в Scrutinizer CI и теперь генерируем отчёт о покрытии средствами Scrutinizer. Это значительно быстрее, а результат тот же.
  • Отлично себя показал Psalm. Рекомендуем, в том числе, для ваших проектов.
  • В консоль GitHub actions теперь всё выводится в цвете. Выглядит значительно лучше!

Немного правок были сделаны на сайте. Прежде всего это переход на новый метод аутентификации GitHub API. Также был сделан ряд небольших улучшений фронтенда.

Патчи для совместимости с PHPUnit для Yii 2 и Yii 1 переехали в отдельный репозиторий. Если вдруг вам понадобится тестировать приложение на версиях PHP с 5.3 по 8, репозиторий будет определённо полезен.

Yii 1

Yii 2

Был выпущен Yii 2.0.39. В нём есть улучшения DI-контейнера и дополнительные исправления для работы с PHP 8.

Чуть менее заметное улучшение коснулось способа генерации аннотаций для магических свойств. Теперь некоторые IDE, включая PhpStorm, будут отличать свойства только для чтения и только для записи.

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

Yii 3

С прошлого выпуска были сделаны следующие релизы:

На данный момент мы готовим пакеты из списка в карточке Trello.

Был принят ряд интересных решений:

  • Все стабильные релизы будут начинаться с версии 1.0.0. Ранее рассматривался вариант начинать с 3.0.0.
  • Пакеты Yii 3.0 будут поддерживать PHP 7.4.
  • В большинство пакетов добавлена конфигурация по-умолчанию. Они будут работать сразу после установки без дополнительной конфигурации или с очень минимальной конфигурацией.
  • Провайдеры конфигурации были удалены почти из всех пакетов и приложений.

В Trello есть доска с задачами, над которыми мы работаем, включая не отражённые в GitHub issue.

Почти каждый из пакетов был серьёзно почищен, получил совместимость с PHP 8 и исправления. Ниже представлено самое интересное.

Новые пакеты

Был создан ряд новых пакетов. Часть из них появились в результате выделения общего кода из других пакетов, а часть - нет.

Инструменты для разработки

  • Были актуализированы зависимости и добавлен Dockerfile.
  • Реализована возможность полу-автоматического выпуска релизов.

Composer config plugin

Была добавлена временная поддержка PHP 8. Она не заменяет вариант с переписыванием плагина на AST и нужна для того, чтобы облегчить тестирование под PHP 8 в то время как мы занимаемся версией с AST.

Контейнер и фабрика

Кеш

Bulma

  • Больше документации, улучшено именование.
  • Добавлена возможность использовать значки в выпадающем меню.
  • Все виджеты сделаны иммутабельными.

Роутер

  • Внутренности и конфигурация упрощены путём выделения коллекции маршрутов в отдельный класс.
  • Метод UrlMatcherInterface::getLastMatchedRequest() удалён, добавлен getCurrentUri().
  • UrlMatcher теперь является опциональным, что хорошо сочетается с консольными приложениями.

Шаблоны приложений и демо

  • Больше не требуется NodeJs. Ресурсы забираются через asset packagist.
  • Конфиги значительно почищены. В app мы поделили их по разным пакетам.
  • Убрана ссылка контейнера на себя.
  • В yii-demo добавлен Swagger. Открывается через /swagger.
  • yii-demo подвергся рефакторингу.
  • Заменили в yii-demo реализацию PSR-7 на httpsoft/http-message.

Var dumper

Files

Cycle

  • В файловую схему теперь можно писать. Также в неё добавлена поддержка чтения из нескольких файлов.
  • Был задействованы наши DI контейнер / фабрика, так что интеграция с Cycle теперь работает на PHP 8.

Data

DBAL и ActiveRecord

Как DBAL, так и ActiveRecord, портированные с Yii 2, ещё рефакторить и рефакторить несмотря на то, что их серьёзно почистили и они, по большей части, работают.

Arrays

HTML

Debugger

Очереди

Translator

Пакеты i18n помечены как устаревшие, добавлены пакеты translator с новым дизайном.

Новая и изменённая документация

Рекомендации к чтению и другие новости

❤️Спасибо!

Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.

Отдельное спасибо тем, кто помог Yii 3 кодом:

читать далее...
Новости Yii 2020, выпуск 6

Всем привет!

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

Активность на официальном форуме и форуме yiiframework.ru стала совсем низкой если сравнивать со временами Yii 1 и Yii 2. Сообщество перешло в разные социальные сети и чаты. Я думаю, что такая миграция — это плохо. В соцсетях и чатах практически невозможно найти предыдущие ответы. Одни и те же вопросы повторяются практически каждый день и ответы не оседают в поиске. Почти уверен, что тот, кто первым начнёт собирать вопросы и ответы и публиковать их как статьи в wiki или посты в блоге, станет довольно популярным.

А теперь перейдём к тому, что же интересного случилось с последнего выпуска.

Yii 1

Со мной связались Onetwist Software и предложили добавить поддержку PHP 8 в Yii 1.1 в обмен на пополнение фонда Yii (из которого мы частично финансируем Yii 3). В итоге в master версии 1.1 теперь есть поддержка PHP 8. Релиза пока не было. Ждём баг-репортов. Также:

  • Пайплайны перетащили с TravisCI на GitHub actions.
  • Тесты запускаются на версиях от PHP 5.3 до PHP 8.0. Пришлось пропатчить старый PHPUnit, но в итоге всё заработало. Части патча пригодятся и для Yii 2.

Из других новостей Yii 1.1, Marco van 't Wout, давний пользователь Yii, вызвался разбирать тикеты и, вероятно, неофициально поддерживать Yii 1.1 после планируемого окончания поддержки. Посмотрим как пойдёт...

Yii 2

Мы постепенно переводим шаблоны приложения и расширения Yii 2 на GitHub actions. Это позволит нам нормально работать над будущими релизами.

Yii 3

2020 год не прост и много чего идёт не по плану. Вероятно, сдвинутся предполагаемые даты релиза, о которых я уже несколько раз неосторожно заявил. Тем не менее, публичный API меняется всё меньше, и значительная часть кода направлена на исправление ошибок и мелкие доработки, а не на перепроектирование API. Конечно, некоторые части, включая конфигурацию, всё ещё сильно меняются. Конфигурацией я пока не вполне доволен.

Команда выпустила стабильные версии некоторых пакетов. Все они фреймворко-независимые и могут быть использованы в любом PHP-приложении:

Готовятся и другие релизы.

Ниже разберём интересные изменения и дополнения.

Тесты и причёсывание

  • PHP 8 был добавлен как поддерживаемая версия в composer.json всех пакетов. Большинство уже совместимы, но пока не все.
  • После довольно длительного использования phan мы переходим на Psalm. Он более популярный и поддерживается PhpStorm.
  • Для многих пакетов реализованы дополнительные тесты, во многих пакетах тесты значительно улучшены на основе результатов мутационного тестирования через Infection. Вместе с общей зачисткой исправлено значительное количество ошибок.
  • Был создан пакет для поддержки тестов. Сейчас он используется командой Yii 3 для самого фреймворка, но, вероятно, его можно будет использовать и в своих приложениях.

Пакеты

Демо приложение и шаблон приложения

Основные задачи, над которыми мы работаем, показаны на доске в Trello. Там есть и те, которых нет на GitHub. Например, редизайн страницы ошибки.

Если хотите присоединиться к разработке, пишите мне в почту, на форум, в Telegram или по любому другому каналу.

Команда

Команда ещё выросла. Текущий состав есть на сайте:

Также на страницу был добавлен Дмитрий Дерепко. На самом деле над Yii 3 он работает уже не мало, а вот на страницу мы как-то забыли его добавить :)

Новые и переработанные внутренние соглашения:

Обновлённые страницы в руководстве по фреймворку:

Другие новости

  • На YiiPowered уже 597 проектов. Если вы не добавили свои — добавляйте. Можете даже не загружать скриншоты. Они подтянутся с реального сайта ночью.

Рекомендации к чтению

❤️ Спасибо!

Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.

Отдельное спасибо тем, кто помог Yii 3 кодом:

Также спасибо Ihor Sychevskyi за улучшения сайта yiiframework.com.

читать далее...
Новости Yii 2020, выпуск 5

Приветствую!

Время очередного выпуска новостей Yii. Как у Yii 2, так и у Yii 3 всё хорошо :)

Наконец, дошли руки обновить страницу с командой на официальном сайте. Константин Сироткин вернулся и активно занимается расширением Yii 2 ElasticSearch. Сформирована основная команда Yii 3. Вообще это по факту произошло в конце 2019-го. Имена, вероятно, вам известны так как упоминались в предыдущих выпусках.

Мы частично переместили тесты на GitHub actions. Полёт прекрасный, рекомендуем. Мы добавляем статический анализ через phan и прогоняем тесты через Infection чтобы ещё больше повысить качество кода.

Я потратил немного времени на YiiPowered, где мы собираем проекты на Yii. Сейчас там 571 проект. Улучшения такие:

  • Можно добавлять проекты на Yii 3.0.
  • Для проектов, для которых не заполнены скриншоты, они делаются и загружаются автоматически каждую ночь.

В прошлом выпуске я упомянул конференцию PHP Russia Online. Прошла она хорошо. Доступны видео.

В качестве эксперимента, я записал скринкаст во время работы над фреймворком. Очень хочется узнать ваше мнение. Стоит писать ещё? Хотите узнать про какую-то часть фреймворка или процесс разработки?

Yii 2

Вышла версия 2.0.36. Это важное обновление из-за улучшений в работе DI-контейнера. Он стал немного ближе к Yii 3.

В action как веб, так и консольного контроллеров теперь можно так:

namespace app\controllers;

use yii\web\Controller;
use app\components\BookingInterface;

class HotelController extends Controller
{    
    public function actionBook($id, BookingInterface $bookingService)
    {
        $result = $bookingService->book($id);
        // ...    
    }
}

Ещё одно улучшение в том, что Instance::of() начал работать в массивах:

return [
    ContentTypeMiddleware::class => [
        '__construct()' => [
            Instance::of(StreamFactory::class),
            [
                'json' => Intance::of(JsonFormatter::class),
                'yaml' => Intance::of(YamlFormatter::class),
            ],
        ],
    ],
];

Дополнительно были выпущены следующие расширения:

Yii 3

Во-первых, появился шаблон приложения. С него вы можете начать пробовать Yii 3. Это не финальная версия, но представление о том, что у нас есть, даёт. Обсуждения и конструктивная критика приветствуются.

Общую картину можно наблюдать в Trello.

Новые и переработанные внутренние соглашения:

Новые страницы в руководстве по фреймворку:

Рекомендации к чтению

❤️ Спасибо!

Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.

Отдельное спасибо тем, кто помог Yii 3 кодом:

читать далее...
Новости Yii 2020, выпуск 4

Это второй выпуск новостей, выпущенный на карантине. С прошлого выпуска карантинные меры несколько усилили. Кое-что успело подстроиться и прийти в норму, но много нет. В любом случае, пока, на сколько я знаю, в сообществе Yii все живы и здоровы, так что карантин мы точно переживём и останавливаться не собираемся.

Как многие знают, я собираю конференцию PHP Russia и вирус, конечно же, на неё повлиял. Плохо то, что пришлось её перенести (пока это сентябрь, но как получится на самом деле не знает никто). Хорошая новость в том, что 13 мая состоится бесплатная PHP Russia Online. Заходите, участвуйте. Единственно, необходимо зарегистрироваться заранее. Сам я в этот раз не выступаю, но уверен, что к выходу Yii 3 мы сделаем ещё один YiiConf.

Будьте здоровы и спасибо за поддержку!

Yii 2

Вышли новые версии как самого фреймворка, так и расширений.

Yii 3

Если вы читали предыдущий выпуск, то знаете что у нас есть Trello доска с планами по Yii 3.

А теперь про то, что было сделано.

  • Во-первых, была выпущена стабильная версия пакета Injector. Пакет на 100% покрыт тестами и имеет довольно высокую оценку по качеству кода. Доступно руководство по использованию и алгоритму работы. Так как пакет фреймворко-независимый, то использовать его можно с любым PHP кодом. В Yii 3 пакет является очень важным и используется для авто-подстановки зависимостей в обработчиках роутов и виджетах.
  • Пакет strings пополнился методами StringHelper::truncateBegin() и StringHelper::truncateMiddle().
  • Были добавлены новые тесты в Queue. Сам пакет ещё в разработке.
  • В router сделаны важные исправления и улучшения. Он стал более производительным из-за ленивой загрузки всего. Конфигурация несколько поменяла синтаксис.
  • HeaderHelper, помогающий разбирать заголовки HTTP, был перенесён из yii-web в http.
  • Метаданные PhpStorm были добавлены в http и yii-web. С ними дополнение в IDE и проверки будут работать ещё лучше.
  • Веб приложение обзавелось новым событием AfterEmit.
  • Был реализован удобный способ формирования ответов данными и их форматирования в JSON, XML и другие форматы. Он станет основной для реализации основанных на API приложений.
  • event-dispatcher ConcreteProvider был объединён с Provider. Также было запрещено напрямую добавлять обработчики событий во время выполнения приложения.
  • Пакет yii-debug был лучше интегрирован с event manager. UI пока не готов.
  • Пакет validator пополнился правилами AtLeast и Json.
  • Код mailer был почищен.
  • Фабрика пакет widget теперь инициализируется автоматически, регистрировать её явно в приложении больше не нужно.
  • Мы оттестировали совместимость с Composer 2 всех используемых нами плагинов. В результате поправлен fxpio/foxy, который используется для установки ресурсов пакета Bootstrap 4.
  • Для composer-config-plugin были написаны тесты и произведён серьёзный рефакторинг. Также плагин теперь полностью совместим с Composer 2.
  • Проблемы с сессиями в yii-web были исправлены.
  • В пакете RBAC был реализован рекурсивный поиск ролей.
  • В пакет array добавлены модификаторы массива. Это специальные маркеры, которые меняют способ слияния массивов, что полезно для конфигов. Метод multisort был перемещён в отдельный класс ArraySorter.
  • factory и di были почищены и улучшены, включая производительность. Стало возможным передавать параметры конструктора по имени или порядку. Также добавлена поддержка конфигурирования иммутабельных объектов.
  • Все виджеты теперь иммутабельные.
  • KeysetPaginator из пакета data был отрефакторен. Пример его использования добавлен в демо.
  • Был создан пакет yii-form. Он в ещё очень активной разработке, но уже делает приятней работу с формами.
  • Rate limiter переехал в отдельный пакет.
  • Отрефакторен код cookies, добавлена коллекция.
  • В пакет Yii demo были добавлены примерны многих улучшений, перечисленных выше. Также был добавлен удобный способ объявлять обработчики событий.

Нам очень важна конструктивная критика. Оставляйте её в issue соответствующего пакета или на форумах.

Новые и переработанные внутренние соглашения:

Рекомендации к чтению

Фонд

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

Благодаря фонду удалось дать больше времени на Yii roxblnfk и Wilmer Arambula. В планах расширить это на других разработчиков.

На странице OpenCollective мы более чётко определили политику выплат:

Принимаются заявки на возмещение времени, потраченного в соответствии с ценностями Yii Software, то есть на поддержку, продвижение и разработку Yii и другого OpenSource, связанного с фреймворком.

  • Любой, кто помогает Yii может использовать фонд. В приоритете те, кто делает больше по чёткому плану и делает это вместо коммерческой работы, то есть в ущерб своим доходам.
  • Сумма не должна превышать то, что может позволить себе фонд учитывая остальные траты.
  • Траты и планы согласуются заранее с командой Yii.
  • Необходимо записывать сколько часов на что потрачено.

Под строгим запретом любые траты, не соответствующие целям Yii Software или непропорционально большие по отношению к остальным.

❤️ Спасибо!

Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.

Отдельное спасибо тем, кто помог Yii 3 кодом:

читать далее...
Новости Yii 2020, выпуск 3

С прошлого выпуска прошёл месяц, за который в мире много чего успело поменяться. Прежде всего, из-за вируса. Отменились почти все конференции, сошли на нет путешествия, был введён карантин, работа из дома с детьми 24/7 стала обычным делом. Начал изменяться общий ландшафт IT.

Что осталось неизменным, так это потребность в надёжном и удобном фреймворке для разработки и наше стремление выпустить Yii 3. Я рад, что вы поддерживаете нас несмотря на ситуацию.

Будьте здоровы и приятного чтения.

Спасибо!

Yii 2

Вышла версия 2.0.33. Исправлено 22 ошибки, сделано 4 улучшения.

Вышли расширения:

Yii 3

Чтобы лучше понимать картину разработки мы завели доску в Trello.

Новые и переработанные внутренние соглашения:

Новые страницы в руководстве по фреймворку:

Рекомендации к чтению

❤️ Спасибо!

Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.

Отдельное спасибо тем, кто помог Yii 3 кодом:

читать далее...
Новости Yii 2020, выпуск 2

Этот новостной выпуск было написать довольно трудно. Не потому что не о чем писать, наоборот — Yii 3 улучшается с каждым днём и процесс настолько затягивает, что от него не оторваться :)

Yii 2

  • simialbi реализовал перенос тестирования Yii 2 из Travis в Github actions. Это позволило сократить время на билды для коммитов и pull request-ов. Минус только в том, что actions пока менее стабильны, чем Travis: иногда случаются segfault-ы, проблемы со стартом сервисов и так далее. Именно поэтому пока мы решили не переводить на Github actions Yii 3, а сначала понаблюдать за Yii 2.
  • haveyaseen пропатчил PHPUnit для полной поддержки PHP 5.4 — 7.4, теперь тесты проходят без warning-ов.
  • Обновили модуль Codeception Yii 2 для поддержки мультисессий Codeception.
  • Релиз Twig 2.2.2 и 2.3.0.
  • Релиз Auth client 2.2.7.
  • Релиз Apidoc 2.1.3.
  • Релиз Sphinx 2.0.13.

Yii 3

Это не полный список, так как pull request-ов было очень много!

  • Пакет widget выделен из view и, наконец, принял законченную форму.
  • Было реализовано несколько стандартных виджетов Yii, они разместились в пакете yii-widgets.
  • Сделали черновую реализацию Bootstrap 4.
  • Стали использовать PSR-12 для автоматического исправления стиля кода через StyleCI.
  • Внедрили типизированные свойства почти во все пакеты.
  • Отполировали пакет validator.
  • Продолжили разработку пакета интеграции с Cycle и самой Cycle ORM. ORM стала быстрее. Отрефакторили интеграцию, добавили команду cycle/schema, SelectDataReader (реализацию интерфейса "data"). Добавили возможность определить схему также через отдельные файлы PHP, а не только в аннотациях. Дописали документацию.
  • Пакет router был сильно изменён. Отрефакторен, частично переписан заново, почищен от багов. Добавлена генерация абсолютных URL, улучшен синтаксис, исправлено использование стека middleware, добавлена "ленивая" инициализация. Значительно выросла производительность.
  • Отрефакторили пакет RBAC.
  • Реализовали Message Formatter в i18n. Translator выделили в отдельный пакет.
  • Начали разработку пакета queue.
  • Offset paginator из пакета data привели в соответствие с реальными кейсами использования.
  • Подключили Dependabot в репозитории Yii 3, обновили все зависимости.
  • Продолжена разработка пакета dataview (списки и гриды).
  • Внесли в пакет arrays важные исправления, как новые, так и портированные с Yii 2.
  • Важные исправления в контейнере DI. Теперь service provider с отложенной инициализацией обязан явно предоставить список ID предоставляемых им сервисов.
  • Несколько классов убрали из пакета web: Chain middleware, action caller middleware, callback middleware. Теперь их поддержка встроена напрямую в роутер.
  • Переделали middleware dispatcher для корректного использования стека middleware. Убедились, что все потенциально опасные варианты использования теперь невозможны.
  • Web приложение начало генерировать события на этапах инициализации, завершения работы, а также начала и завершения обработки запроса.
  • Улучшили синтаксис для рендера view в demo.
  • Сделали первые рабочие версии портированных в Yii 3 компонентов абстракции DB Yii 2, реализации драйверов PostgreSQL, MySQL, SQLite и Active Record. Качество пока что далеко от допустимого в продакшене, но это важный шаг к возможной самостоятельной реализации.
  • Составили черновик дизайна debugger, приступили к реализации.
  • Сделали провайдер конкретных событий для диспетчера событий.
  • В demo исправили проблемы с Docker, а сам пакет превратился в пример блога. В настоящий момент demo активно использует Cycle ORM, Bootstrap 4 и пакет data. Таким образом, вы можете увидеть, как сейчас реализуется приложение на Yii 3. В то же время, обращаем ваше внимание, что это определённо не финальная версия. Очень ждём фидбек по этой теме на официальном форуме и в issue tracker.

Новые и переработанные внутренние соглашения:

Новые страницы в руководстве по фреймворку:

⚠️ Не пытайтесь повторить это в домашних условиях ;)

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

Рекомендации к чтению

Несколько статей, отражающих дух Yii 3:

❤️ Спасибо!

Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.

Отдельное спасибо тем, кто помог Yii 3 кодом:

читать далее...
Новости Yii 2020, выпуск 1

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

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

Yii, год в ретроспективе

Уже конец 2019 года, посмотрим, что же удалось сделать.

Фонд

В этом году был создан фонд на OpenCollective, который позже был дополнен Tidelift и GitHub. Он позволяет мне фокусироваться на Yii 3 и, в тоже время, нормально поддерживать Yii 1.1 и Yii 2.0. Это успех и я хочу сказать спасибо всем, благодаря кому это стало возможным.

Процессы

Я ввёл "релизные вторники", определил процесс работы с issue, улучшил инструменты для релизов Yii 2. Всё это вылилось в 15 выпущенных версий Yii 2, одну версию Yii 1.1 и многочисленные релизы расширений Yii 2. И всё это параллельно с разработкой Yii 3.

Также удалось определить релизный цикл.

Yii 3

Как можно понять из постов на OpenCollective, прогресс, благодаря отличным pull request-ам и review от сообщества, значительный. Спасибо за это. Вместе у нас всё получится.

Конечно, ещё есть что дорабатывать, но Yii 3 уже можно использовать в проектах. Естественно, пока не в коммерческих, а в хобби-проектах и если у вас достаточно времени делать правки потому как ломающих API изменений пока ещё много.

На данный момент у нас есть набор пакетов, часть руководства, демо-приложение, отличный инструмент для разработки самого фреймворка и обкатанный процесс разработки.

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

Спасибо за поддержку и с новым годом!

читать далее...
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-ы.

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