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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
⚡️ #yiisoftMailer #yiisoftLogTargetSyslog #yiisoftHttp #yiisoftI18n #yiisoftLog #yiisoftLogTargetDb #yiisoftLogTargetEmail #yiisoftMailerSymfony #yiisoftMiddlewareDispatcher #yiisoftMutexPdoOracle #yiisoftMutexRedis #yiisoftRbac #yiisoftRbacDb #yiisoftRbacPhp #yiisoftRequestBodyParser #yiisoftRateLimiter #yiisoftProxy #yiisoftProfiler #yiisoftMutexPdoPgsql #yiisoftMutexPdoMysql #yiisoftMailerSwiftmailer #yiisoftHtml #yiisoftRequestModel #yiisoftRequirements #yiisoftRouter #yiisoftRouterFastroute #yiisoftSession #yiisoftStrings #yiisoftTestSupport #yiisoftTranslator #yiisoftTranslatorMessageDb #yiisoftUser #yiisoftView #yiisoftViewTwig #yiisoftWidget #yiisoftYiiConsole

Сделали изменения в стили кода. Методы, вызываемые «цепочкой», перенесли на новую строку:

- Yii Mailer Library (PR)
- Yii Logging Syslog Target (PR)
- Yii HTTP (PR)
- Yii Internationalization Library (PR)
- Yii Logging Library (PR)
- Yii Logging DB Target (PR)
- Yii Logging Email Target (PR)
- Yii Mailer Symfony Mailer Extension (PR)
- Yii Middleware Dispatcher (PR)
- Yii Mutex Oracle PDO Driver (PR)
- Yii Mutex Redis Driver (PR)
- Yii Role-Based Access Control (PR)
- Yii RBAC Database (PR)
- Yii RBAC PHP File Storage (PR)
- Yii Request Body Parser (PR)
- Yii Rate Limiter Middleware (PR)
- Yii Proxy (PR)
- Yii Profiler (PR)
- Yii Mutex PostgreSQL PDO Driver (PR)
- Yii Mutex MySQL PDO Driver (PR)
- Yii Mailer SwiftMailer Extension (PR)
- Yii HTML (PR)
- Yii Request Model (PR)
- Yii Requirements Checker (PR)
- Yii Router (PR)
- Yii Router FastRoute Adapter (PR)
- Yii Session (PR)
- Yii Strings (PR)
- Yii Test Support (PR)
- Yii Message Translator (PR)
- Yii Translator DB Message Storage (PR)
- Yii User (PR)
- Yii View (PR)
- Yii View Twig Renderer (PR)
- Yii Widget (PR)
- Yii Console (PR)
🔥4👍3
⚡️ #yiisoftValidator

Сделали важный рефакторинг в Yii Validator, разделив правила на собственно само правило и обработчик правила (PR).

Такой подход позволит автоматически разрешать зависимости обработчика правила (например, правило, которому для проверки требуется подключение к БД).

#yiisoftForm #yiisoftRequestModel #yiisoftYiiMiddleware #yiisoftYiiDebugApi #yiisoftDemoApi

Адаптировали к изменениям в валидаторе пакеты и приложения:

- Yii Form (PR)
- Yii Request Model (PR)
- Yii Middleware (PR)
- Yii Debug API (PR)
- Демо API-приложения (PR)
⚡️ #yiisoftRequestModel

В пакете Yii Request Model улучшили сообщение о некорректной конфигурации мидлвари в MiddlewareFactory (PR).
⚡️ #yiisoftRequestModel

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

final class SimpleController
{
public function action(
#[Route('id')] int $id,
#[Request('foo')] $attribute,
): ResponseInterface {
echo $id;
//...
}
}


Доступные атрибуты: Body, Query, Request, Route и UploadedFiles.
🔥72
⚡️ #yiisoftRequestModel

В Yii Request Model немного порефакторили существующие тесты и добавили новых (PR).
🔥2
⚡️ #yiisoftRequestModel

Yii Request Model адаптировали к последней версии yiisoft/middleware-dispatcher (PR).
⚡️ #yiisoftRequestModel

В Yii Request Model обновили версию dev-зависимости yiisoft/test-support до ^3.0 (PR).
⚡️ #yiisoftRequestModel

В readme пакета Yii Request Model добавили информацию о подключении мидлвари (PR).
⚡️ #yiisoftRequestModel

Несколько улучшений в Yii Request Model.

• Подняли минимальную требуемую версию yiisoft/translator до ^2.0 и адаптировали тесты к последним изменениям в валидаторе (PR).

• Добавили поддержку yiisoft/middleware-dispatcher версии ^4.0, а также в CI добавили проверку транзитивных зависимостей (PR).

• В CI добавили Rector, применили предлагаемые изменения (PR).

• Немного подчистили код и добавили секцию с требованиями в readme (PR).
🔥2
⚡️ #yiisoftYiiDataview #yiisoftYiiGii #yiisoftRequestModel

Добавили поддержку yiisoft/router версии ^2.0 в пакетах:
- Yii Data Widgets (PR),
- Gii (PR),
- Yii Request Model (PR).
👍2
⚡️ #yiisoftValidator #yiisoftDemo #yiisoftYiiMiddleware #yiisoftRequestModel #yiisoftForm #yiisoftYiiDebug #yiisoftYiiGii

Несколько обновлений в Yii Validator.

• Добавили возможность переводить названия атрибутов (PR).

• В правиле Required к сообщениям добавили параметр "attribute" (PR).

• Перенесли классы (PR):
RulesDumperYiisoft\Validator\Helper
RuleHandlerContainer
Yiisoft\Validator\RuleHandlerResolver
SimpleRuleHandlerContainer
Yiisoft\Validator\RuleHandlerResolver

К последним изменениям адаптировали:
- Демо приложений (PR),
- Yii Middleware (PR),
- Yii Request Model (PR),
- Yii Form (PR),
- Yii Debug (PR),
- Gii (PR).
👍5
#yiisoftRequestModel

Пакет Yii Request Model закрыт.

Предыстория

В пакетах Yii Request Model и Yii Form существовал функционал для создания и наполнения объектов. Каждый из пакетов делал это по своему.

В связи с этим в рамках отдельного пакета был написан Yii Hydrator, который умеет создавать и наполнять объекты. Также гидратор поддерживает настраиваемое приведение типов, PHP-атрибуты и разрешение зависимостей.

Дополнительно в отдельном пакете Yii Validating Hydrator создан валидирующий гидратор. По факту это декоратор над обычным гидратором, который выполняет валидацию после создания и наполнения объекта.

И, наконец, написан пакет Yii Input HTTP, который предоставляет дополнения к Yii Hydrator и Yii Middleware Dispatcher:

• модель запроса;
• атрибуты для гидратора, позволяющие получать данные из объекта запроса (Query, Body, UploadedFiles и т. д.);
• возможность использовать атрибуты гидратора для наполнения параметров в экшенах.

Таким образом функционал пакета Yii Request Model распределился по новым пакетам. А также мы получили PHP-атрибуты (Query, Body, UploadedFiles и т. д.), которые могут быть использованы:

• в параметрах экшена;
• внутри любого объекта при наполнении гидратором, в том числе и в моделях запроса или формы.
🔥8🎉21🤔1😢1🍾1