Хроники Yii3
625 subscribers
43 photos
1.7K links
Описание процесса разработки фреймворка из первых рук 😎

Обсуждение:
https://yangx.top/yii3ru

Сводка по всем пакетам:
https://www.yiiframework.com/status/3.0

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
⚡️ #yiisoftFiles

В пакете Yii Files добавили возврат результата и тип возвращаемый функцией обратного вызова передаваемой в set_error_handler() (PR).
⚡️ #yiisoftRbacPhp

В пакете Yii RBAC PHP File Storage добавлена поддержка создания вложенных папок в случаях, когда папка для хранения данных не существует (PR).
⚡️ #yiisoftYiiDebugApi

В пакете Yii Debug API добавили OpenAPI-аннотации (PR).
⚡️ #yiisoftYiiRunnerConsole

В пакете Yii Console Runner добавили приёмочные тесты с помощью Codeception (PR).
👍1
🔥 #Новости

Алексей Рогачёв вернулся в Yii Core Team. Алексей уже ранее работал над Yii, но потом пришлось переключиться на другие задачи, в том числе работу над сайтом yiiframework.com и поддержку пакетов для Yii2. Сейчас он закончил работу над большим релизом API Documentation Generator for Yii 2 и теперь присоединяется к разработке Yii3. С возвращением 🎉
🎉9👍3🔥3
#yiisoftYiiRunner #yiisoftYiiRunnerHttp #yiisoftYiiRunnerConsole #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Runner 1.0.0
🎁 Yii HTTP Runner 1.0.0
🎁 Yii Console Runner 1.0.0

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

<?php

declare(strict_types=1);

use Yiisoft\Yii\Runner\Http\HttpApplicationRunner;

require_once __DIR__ . '/autoload.php';

(
new HttpApplicationRunner(
__DIR__,
$_ENV['YII_DEBUG'],
$_ENV['YII_ENV']
)
)->run();


Вместе с основным пакетом зарелизили адаптеры для консольного и HTTP-приложения. Релиз адаптера для RoadRunner (Yii RoadRunner Runner) будет чуть позже.
🎉7
#yiisoftProfiler #ПатчРелиз #Релиз

🎁 Yii Profiler 1.0.2

• В методе Profiler::end() запрещено передавать контекст, содержащий ключи beginMemory или beginTime.

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

Оба изменения были выполнены в рамках одного пулл-реквеста.
⚡️ #yiisoftRequestModel #yiisoftDemoApi

В пакете Yii Request Model удалили конфигурацию фабрики мидлварей (PR). Подразумевается, что она должна конфигурироваться в приложении. В демо API-приложения, где используется Yii Request Model так и сделали (PR).
⚡️ #yiisoftYiiQueue

В пакете Yii Queue удалили все события (PR), так как единственный кейс для их использования — это отслеживание метрик, а это можно (и лучше) делать в других местах.
⚡️ #yiisoftRbac #yiisoftRbacPhp

Продолжаем готовить RBAC к релизу.

• В пакете Yii RBAC в фабрике для создания правил ClassNameRuleFactory добавили валидацию передаваемого имени класса и создаваемого правила, в случае ошибки бросается исключение RuntimeException с соответствующим сообщением (PR).

• Перенесли Yiisoft\Rbac\RuleFactory\ClassNameRuleFactory в Yiisoft\Rbac\ClassNameRuleFactory, переименовали метод Manager::setGuestRole() в Manager::setGuestRoleName(), причесали служебные файлы и увеличили покрытие тестами до 100% в пакете Yii RBAC (PR).

• Переименовали методы в классе \Yiisoft\Rbac\Manager (PR):
setDefaultRoles()setDefaultRoleNames()
getDefaultRoles()
getDefaultRoleNames()
getDefaultRoleInstances()
getDefaultRoles()

• В пакете Yii RBAC PHP File Storage адаптировали код к последним изменениям в Yii RBAC, причесали служебные файлы и увеличили покрытие тестами (PR, PR, PR).
⚡️ #yiisoftAppApi

Адаптировали шаблон API-приложения к внесённым ранее изменениям в конфигурации пакета Yii Request Model (PR).
⚡️ #yiisoftDemo

Адаптировали демо веб-приложения к внесённым ранее изменениям в пакете Yii RBAC (PR).
⚡️ #yiisoftForm #yiisoftDemo

Сделали большой рефакторинг (в пулл-реквесте более 150 файлов), попутно внеся несколько улучшений, в пакете Yii Form (PR).

• Упростили создание полей в представлениях.
Field::widget()->config($form, 'email')->email()

Field::widget()->email($form, 'email')

• Общая конфигурация для всех полей и конфигурация конкретных полей использует синтаксис Yii Definitions.

• Конфигурация полей собирается из трёх частей в следующем порядке:
- конфигурация виджета поля в фабрике виджетов;
- конфигурация поля в классе`Field`;
- конфигурация, передаваемая пользователем при создания поля.

• Методы общие для нескольких виджетов сгруппированы в абстрактные классы, от которых затем наследуются сами виджеты (InputAttributes, ButtonAttributes и др.).

• Установка атрибутов полей в зависимости от правил валидации в форме вынесена в отдельный класс FieldValidator, а также добавлены интерфейсы HasLengthInterface, MatchRegularInterface и NumberInterface, реализуемые полями имеющими соответствующие атрибуты.

• В интерфейсе модели формы FormModelInterface удалили метод setFormErrorsClass().

• В абстрактном классе модели формы FormModel удалили метод getError().

• В методе очистки коллекции ошибок FormErrorsInterface::clear() добавили опциональный строковой параметр, позволяющий удалить ошибки для конкретного атрибута.

• Добавлен виджет ButtonGroup.

• Добавлена поддержка PHP 8.1.

• Улучшили сообщения об ошибках.

• Добавили ещё тестов.

Соответствующие изменения внесли в демо веб-приложения (PR).
👍4
⚡️ #yiisoftYiiConsole

Улучшили примеры в readme пакета Yii Console (PR).
⚡️ #yiisoftWidget

В пакете Yii Widget добавили пример инициализации WidgetFactory в решение в дружественном исключении WidgetFactoryInitializationException (PR).
⚡️ #yiisoftForm

В пакете Yii Form исправили ошибку в поле Number, теперь значение поля null учитывается при генерации виджета (PR).
⚡️ #yiisoftDbMysql

В пакете Yii DB MySQL Extension немного отрефакторили запросы в классе схемы (PR).
⚡️ #yiisoftForm

В пакете Yii Form добавлена возможность использовать контейнер (обёртка в HTML) в виджете ButtonGroup (PR).
👍1
⚡️ #yiisoftRbacSpiralDb #yiisoftRbacCycleDb

Переименовали пакет Yii RBAC Spiral Database.

Yii RBAC Spiral Database (yiisoft/rbac-spiral-db)

Yii RBAC Cycle Database (yiisoft/rbac-cycle-db)
⚡️ #yiisoftForm

В пакете Yii Form добавили возможность указать для каких именно атрибутов выводить ошибки (PR):

• в методе FormErrors::getErrorSummary() добавлен опциональный аргумент $onlyAttributes;

• в виджете ErrorSummary добавлен метод onlyAttributes().
⚡️ #yiisoftForm

В пакете Yii Form сделали исключения дружественными (то есть сразу с вариантами решения проблемы, см. Yii Friendly Exception) и добавили ещё тестов (PR).
👍2