[PHP, Yii] Новости Yii 2021, выпуск 1
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Привет, сообщество!Это первый выпуск новостей в 2021. Начало года вышло продуктивным. Мы начали активно релизить пакеты Yii 3, есть значительный прогресс с пока не релизнутыми пакетами. Улучшили инструментарий разработки, много всего исправили, убили лишние пакеты. И всё это параллельно с поддержкой Yii 2 и решением проблем с финансированием.
Команда и фондНесмотря на то, что 2020 был через край долбанутым, для Yii всё вышло неплохо. Удалось договориться о продлении поддержки Yii 1.1 и других вещах в обмен на единовременное или постоянное пополнение фонда.Эти соглашения и, конечно же, наши любимые спонсоры, позволили команде меньше работать над коммерческими проектами и больше над фреймворком. Фонд удалось использовать полностью.Я был чрезвычайно воодушевлён возросшей скоростью разработки, окунулся в неё с головой и немного подзабыл о финансовой части. В январе меня ждал неприятный сюрприз. Оказывается, что забыл я про очень важный факт. А именно, что немаленькая часть средств фонда поступила не рекуррентными платежами. Соответственно, бюджета на всё не хватило. Чтобы не случилось полной катастрофы, я перестал забирать деньги фонда с OpenCollective и начал активно искать партнёров среди компаний, которые используют Yii и PHP. Результаты пока спорные, но, надеюсь, всё наладится.
Если хотите пообщаться на тему партнёрства, пишите в sam@rmcreative.ru.
Yii 2Вышел Yii 2.0.41. Сильно помогли с релизом Paweł Brzozowski, недавно присоединившийся к команде Yii 2, и Robert Korulczyk с его тщательными ревью всего вливаемого в master кода. Много часов было потрачено на безопасность фреймворка. Удалось перебрать текущие сообщения о предполагаемых уязвимостях и улучшить безопасность.Yii 3Прежде всего, релизы:
- Event dispatcher 1.0.0
- Test support 1.1.0 and 1.2.0
- CSRF 1.0.0
- Auth 2.0.0
- JWT auth 1.0.0
- Strings 1.2.0 and 2.0.0
- Arrays 1.0.0
- Cache and its drivers 1.0.0
- Request body parser 1.0.0
- Files 1.0.0
- Var dumper 1.0.0
- Log and its drivers 1.0.0
В каждом пакете есть документация, отличное покрытие тестами, код вычищен и, конечно же, публичное API достаточно стабилен.Ну а теперь время рассмотреть интересные изменения с предыдущего выпуска новостей. Для удобства изменения сгруппируем по пакетам.Arrays
- Добавлен ArrayHelper::pathExists().
- Добавлен ArrayHelper::group(). Это алиас ArrayHelper::index().
- Удалены модификаторы.
Data
- Добавлен DeletableInterface.
- В PaginatorInterface и реализации добавлен getSort().
- Класс Sort теперь инстанциируется через статические методы-конструкторы, меняющие режим работы.
Auth
- IdentityRepositoryInterface::findIdentityByToken() был выделен в IdentityWithTokenRepositoryInterface. Также, теперь можно настроить токен.
- Был отрефакторен пакет аутентификации JWT.
Config pluginПосле большого количества попыток улучшить Composer config plugin стало очевидно что он стал слишком сложным: AST, мёрж конфигов и всё что там творилось под капотом. Мы приняли решение сделать его менее зависимым от пакетов yiisoft и сделать новый, более простой и производительный, пакет.Все шаблоны приложений уже были переведены на новые конфиги. Скорее всего нужно будет исправлять баги и повышать удобство использования пакета.Error handler
- Рефакторинг, ридми.
- Поддержка Xdebug 3 для получения более подробных стектрейсов.
- ExceptionResponder, при помощи которого можно формировать HTTP-ответ в зависимости от пойманной ошибки. Это может быть полезно для исключений вроде NotFoundException. Будут ли такие исключения из коробки пока обсуждаем.
- Renderer-ы теперь могут отдавать HTTP-заголовки, добавлен renderer, который выводит ошибку в заголовках. Полезно если показывать ошибки текстом неудобно. Например, для некоторых API или при генерации картинок.
- Элементы stacktrace для классов из vendor теперь отображаются отдельной группой и по умолчанию свёрнуты. Так как ошибки обычно в самом приложении, это позволяет не отвлекаться на нерелевантную информацию.
Обработка ошибок в общем
- В пакет yiisoft/yii-event добавлен режим отладки. В нём проверяются все обработчики событий сразу.
- Улучшены ошибки DI контейнера.
Strings
- Добавлен NumericHelper::isInteger().
- Добавлена поддержка bool в NumericHelper::normalize().
- Был переработан матчинг по wildcard. Вместо довольно большого количества опций добавили **, совпадающий, в том числе, с сепараторами.
Var dumper
- Улучшена поддержка PHP 8.
- VarDumper::dump() теперь, по умолчанию, подсвечиваем код.
- Удалён VarDumper::asPhpString().
- Весь специфичный для Yii debugger код был перенесён в сам пакет.
- Покрыты все найденные интересные случаи при экспорте замыканий.
- При установке пакета становятся автоматически доступны d() и dd().
HtmlПакет был значительно переработан. Главных изменений два:
- Вывод по умолчанию экранируется.
- Теги реализованы как отдельные объекты, создаваемые через статические методы-фабрики из Html. Для пользователя это значит, что конфигурация теперь производится через вызов методов. То есть теперь IDE это дополняют и проверяют.
ВалидаторМного рефакторинга. Самое интересное:
- Из Rule выделены интерфейсы.
- Из Validator убрано состояние.
- Реализована валидация вложенных структур.
- Улучшена реализация перевода ошибок
- Возможность определять правила валидации прямо в валидируемом объекте.
- Можно валидировать любые данные, не обязательно DataSetInterface.
- Правило InRange разделено на InRange и Subset.
Формы
- Атрибут "required" теперь добавляется к input-ам на основе правил валидации.
- Из-за изменений в валидаторе поменялся способ валидации форм.
Перевод сообщенийПочти готов к релизу. Можете почитать его readme.MailerMailer и адаптер для SwiftMailer были вычищены и отрефакторены. Добавлена документация. Релизнем как только будут готовы зависимости.DB и ActiveRecordВ обоих пакетах были исправления, оба ещё больше покрыли тестами. Wilmer, член команды, который занимался этими пакетами, уже проверил из в бою на Telegram боте с 120 тысячами запросов в сутки.Оба пакета изначально были портированы из Yii 2 почти как есть. Была убрана магия, добавлены типы, покрытие тестами доведено почти до 100%. Но, несмотря на то что пакеты стали даже лучше, чем Yii 2, дизайн сохранился примерно в том же виде. Нам предстоит трудный выбор, релизить ли первую версию как есть или же сначала затеять гигантский рефакторинг.Скорее всего выберем первое.yii-web
UserЗначительно переделали пакет:
Всё ещё не до конца довольны. Скорее всего будем переделывать ещё.Bootstrap и Bulma
- Убили пакет Bootstrap 4.
- В Bootstrap добавили виджет Toast.
- В Bulma добавили виджет Panel
- Все методы конфигурации сделали иммутабельными.
- Оба пакета адаптированы к изменениям в пакете HTML.
КонсольПоявилась возможность добавлять команды со своим именем.DebuggerЕсть прогресс как в API, так и на фронтенде.
- Сбор данных стал ещё более стабильным.
- Начали собирать данные с роутера. Для этого используется container proxy, что позволило совсем не менять сам пакет роутера.
- Добавлена консольная команда для сброса собранных данных.
- На фронтенде добавили сортировку в списке запросов.
DockerДобавлена поддержка PHP 8.Инструментарий разработки фреймворкаУлучшили инструментарий чтобы можно было удобно работать даже не поставив все пакеты. Улучшили точность фиксера зависимостей. Добавили новую команды release/what. Она подсказываем какой пакет релизить следующим. Приоритет отдаётся пакетам без нестабильных зависимостей и, при этом, блокирующих как можно больше релизов других пакетов.Шаблоны приложений
- К веб-шаблонам применён view injection.
- Layout влит в один файл.
- Решили называть роут индексной страницы "home".
- Применили новый yiisoft/config.
- Реализовали концепт application runner.
- Добавили проверку обработчиков событий.
- Убрали демо-части из app-api в demo-api.
- Перестали создавать формы при помощи контейнера.
Новая и обновлённая документация
- DI container readme
- 010 - Code Style
- 017 - Tags
- 018 - Widgets
- 019 - View code style
- Configuring SSL peer validation
- Handling errors
- Mailing
Почитать-посмотреть
- Building E-commerce website with Yii2.
- Вышел RoadRunner 2.
- 647 проектов на YiiPowered.
- Черновик интерактивного шелла для Yii 3.
- Пакет для превращения в ссылки email-ов и URL-ов в тексте.
- Does it belong in the application or domain layer?.
- Object properties and immutability.
- Contract tests.
❤️ Спасибо!Хочу сказать спасибо всем спонсорам и разработчикам, благодаря которым стала возможна разработка Yii 3. Вместе у нас всё получится.Я понял, что ранее не писал о компаниях, которые поддерживают разработку Yii. Вот самые большие спонсоры с коротким описанием:
- CraftCMS - Отличная OpenSource CMS на Yii2.
- Onetwist Software - Услуги качественной разработки приложений.
- SkillShare - Обучение новым навыкам.
- Betteridge - Ювелирные изделия.
- dmstr - Облачные решения на основе Docker.
- HumHub - OpenSource решения для общения команды.
- JetBrains - Отличные инструменты для разработки.
- Skin.Club - Рынок скинов для CS:GO.
- ЭФКО - фудтех, производство продуктов питания, и венчурные инвестиции. С недавнего времени ещё и ЭФКО-тех, отдельная растущая сервисная IT-компания, которая планирует заниматься не только внутренними проектами ЭФКО.
Кроме перечисленных нас поддерживают отдельные разработчики и другие компании.Отдельное спасибо тем, кто помог Yii 3 кодом:
- Wilmer Arambula.
- Rustam Mamadaminov.
- Viktor Babanov.
- Valerii Gorbachev.
- Evgeniy Zyubin.
- Roman Tsurkanu.
- Aleksei Gagarin.
- Dmitry Derepko.
- Alexander Nekrasov.
- yiiliveext.
- Sergei Predvoditelev.
- mj4444ru.
- Michael Härtl.
- Vitalii Shkolin.
- Insolita.
- Leonid Chernenko.
- Anton Samoylenko.
- Mister 42.
- Evgeniy Tkachenko.
- Julian Schmidt.
- Artur Avdonin.
- l317crew.
- Arman Poghosyan.
- Dmitry Naumenko.
- Andrii Dembitskyi.
- Alexey Gevondyan.
- Milen Hristov.
- Sagittaracc.
- Marko Kaznovac.
- kriptonuz.
===========
Источник:
habr.com
===========
Похожие новости:
- [Мессенджеры, Open source, Системное администрирование, PHP, Программирование] Введение в метрики для PHP разработчика
- [Информационная безопасность, PHP] Бэкдор в 1С-Битрикс: под угрозой сотни сайтов
- [Разработка веб-сайтов, PHP, Программирование, Проектирование и рефакторинг] Run, config, run: как мы ускорили деплой конфигов в Badoo
- [PHP, Symfony] «Я буду долго гнать велосипед!» История создания «своего» фреймворка
- [Python, Программирование] Еще один фреймворк…
- [Разработка веб-сайтов, PHP, Laravel] Laravel–Дайджест (8–21 февраля 2021)
- [Информационная безопасность, Программирование, IT-стандарты, Распределённые системы] Research the OpenSource: Ory/Hydra
- [Мессенджеры, Open source, Системное администрирование, PHP, Программирование] Рефакторинг пет проекта: докеризация, метрики, тесты
- [Информационная безопасность, PHP, Программирование] Защита от уязвимости Dependency Confusion в PHP с помощью Composer (перевод)
- [Разработка веб-сайтов, PHP, Управление сообществом] Каким будет 2021-й год для PHP?
Теги для поиска: #_php, #_yii, #_yii, #_yii2, #_yii3, #_yii_framework, #_frejmvork (фреймворк), #_php, #_opensource, #_php, #_yii
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 07:17
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Привет, сообщество!Это первый выпуск новостей в 2021. Начало года вышло продуктивным. Мы начали активно релизить пакеты Yii 3, есть значительный прогресс с пока не релизнутыми пакетами. Улучшили инструментарий разработки, много всего исправили, убили лишние пакеты. И всё это параллельно с поддержкой Yii 2 и решением проблем с финансированием. Команда и фондНесмотря на то, что 2020 был через край долбанутым, для Yii всё вышло неплохо. Удалось договориться о продлении поддержки Yii 1.1 и других вещах в обмен на единовременное или постоянное пополнение фонда.Эти соглашения и, конечно же, наши любимые спонсоры, позволили команде меньше работать над коммерческими проектами и больше над фреймворком. Фонд удалось использовать полностью.Я был чрезвычайно воодушевлён возросшей скоростью разработки, окунулся в неё с головой и немного подзабыл о финансовой части. В январе меня ждал неприятный сюрприз. Оказывается, что забыл я про очень важный факт. А именно, что немаленькая часть средств фонда поступила не рекуррентными платежами. Соответственно, бюджета на всё не хватило. Чтобы не случилось полной катастрофы, я перестал забирать деньги фонда с OpenCollective и начал активно искать партнёров среди компаний, которые используют Yii и PHP. Результаты пока спорные, но, надеюсь, всё наладится. Если хотите пообщаться на тему партнёрства, пишите в sam@rmcreative.ru.
=========== Источник: habr.com =========== Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 07:17
Часовой пояс: UTC + 5