⚡️ Практически во всех пакетах добавлен ежедневный запуск тестов через GitHub Workflow.
#yiisoftCacheWincache #yiisoftView #yiisoftDi #yiisoftStrings #yiisoftRbacPhp #yiisoftYiiConsole #yiisoftCache #yiisoftDb #yiisoftRbac #yiisoftYiiAuthClient #yiisoftYiiGii #yiisoftViewTwig #yiisoftYiiWeb #yiisoftDbMssql #yiisoftDbOracle #yiisoftLog #yiisoftYiiDebug #yiisoftDbSqlite #yiisoftDbPgsql #yiisoftDbMysql #yiisoftEventDispatcher #yiisoftI18n #yiisoftYiiEvent #yiisoftYiiDbMigration #yiisoftValidator #yiisoftUser #yiisoftTranslatorMessageGettext #yiisoftSecurity #yiisoftMiddlewareDispatcher #yiisoftMutex #yiisoftNetworkUtilities #yiisoftProfiler #yiisoftProxy #yiisoftRequestBodyParser #yiisoftRouterFastroute #yiisoftInjector #yiisoftCacheApcu #yiisoftAuthJwt #yiisoftAuth #yiisoftAssets #yiisoftArrays #yiisoftAliases #yiisoftDemoApi #yiisoftDemo #yiisoftDataResponse #yiisoftData #yiisoftCsrf #yiisoftCookies #yiisoftConfig #yiisoftCacheMemcached #yiisoftCacheFile #yiisoftHttp #yiisoftHtml #yiisoftFiles #yiisoftFactory #yiisoftErrorHandler #yiisoftLogTargetDb #yiisoftLogTargetEmail #yiisoftLogTargetFile #yiisoftRequestModel #yiisoftRbacSpiralDb #yiisoftRateLimiter #yiisoftPackageTemplate #yiisoftMutexRedis #yiisoftMutexPdoPgsql #yiisoftMutexPdoOracle #yiisoftMutexFile #yiisoftMutexPdoMysql #yiisoftTranslatorFormatterSimple #yiisoftTranslatorFormatterIntl #yiisoftTranslatorExtractor #yiisoftTranslator #yiisoftTestSupport #yiisoftSession #yiisoftRouter #yiisoftRequirements #yiisoftTranslatorMessageDb #yiisoftTranslatorMessagePhp #yiisoftVarDumper #yiisoftWidget #yiisoftYiiBootstrap5 #yiisoftYiiBulma #yiisoftYiiCycle #yiisoftYiiDataview #yiisoftYiiDebugApi #yiisoftYiiDebugViewer #yiisoftMailerSwiftmailer #yiisoftMailer #yiisoftLogTargetSyslog #yiisoftJson #yiisoftForm #yiisoftYiiWidgets #yiisoftYiiView #yiisoftYiiSwagger #yiisoftYiiSentry
#yiisoftCacheWincache #yiisoftView #yiisoftDi #yiisoftStrings #yiisoftRbacPhp #yiisoftYiiConsole #yiisoftCache #yiisoftDb #yiisoftRbac #yiisoftYiiAuthClient #yiisoftYiiGii #yiisoftViewTwig #yiisoftYiiWeb #yiisoftDbMssql #yiisoftDbOracle #yiisoftLog #yiisoftYiiDebug #yiisoftDbSqlite #yiisoftDbPgsql #yiisoftDbMysql #yiisoftEventDispatcher #yiisoftI18n #yiisoftYiiEvent #yiisoftYiiDbMigration #yiisoftValidator #yiisoftUser #yiisoftTranslatorMessageGettext #yiisoftSecurity #yiisoftMiddlewareDispatcher #yiisoftMutex #yiisoftNetworkUtilities #yiisoftProfiler #yiisoftProxy #yiisoftRequestBodyParser #yiisoftRouterFastroute #yiisoftInjector #yiisoftCacheApcu #yiisoftAuthJwt #yiisoftAuth #yiisoftAssets #yiisoftArrays #yiisoftAliases #yiisoftDemoApi #yiisoftDemo #yiisoftDataResponse #yiisoftData #yiisoftCsrf #yiisoftCookies #yiisoftConfig #yiisoftCacheMemcached #yiisoftCacheFile #yiisoftHttp #yiisoftHtml #yiisoftFiles #yiisoftFactory #yiisoftErrorHandler #yiisoftLogTargetDb #yiisoftLogTargetEmail #yiisoftLogTargetFile #yiisoftRequestModel #yiisoftRbacSpiralDb #yiisoftRateLimiter #yiisoftPackageTemplate #yiisoftMutexRedis #yiisoftMutexPdoPgsql #yiisoftMutexPdoOracle #yiisoftMutexFile #yiisoftMutexPdoMysql #yiisoftTranslatorFormatterSimple #yiisoftTranslatorFormatterIntl #yiisoftTranslatorExtractor #yiisoftTranslator #yiisoftTestSupport #yiisoftSession #yiisoftRouter #yiisoftRequirements #yiisoftTranslatorMessageDb #yiisoftTranslatorMessagePhp #yiisoftVarDumper #yiisoftWidget #yiisoftYiiBootstrap5 #yiisoftYiiBulma #yiisoftYiiCycle #yiisoftYiiDataview #yiisoftYiiDebugApi #yiisoftYiiDebugViewer #yiisoftMailerSwiftmailer #yiisoftMailer #yiisoftLogTargetSyslog #yiisoftJson #yiisoftForm #yiisoftYiiWidgets #yiisoftYiiView #yiisoftYiiSwagger #yiisoftYiiSentry
⚡️ #yiisoftRouter #yiisoftDemo #yiisoftDemoApi #yiisoftYiiDebugApi #yiisoftRequestModel
Yii Router: хранение аргументов, полученных из URL, перенесено из объекта запроса в объект
Соответствующие изменения внесены в документацию (PR), приложения и пакеты:
Демо веб-приложения (PR),
Демо API-приложения (PR),
Yii Router FastRoute Adapter (PR),
Yii Debug API (PR),
Yii Request Model (PR).
Yii Router: хранение аргументов, полученных из URL, перенесено из объекта запроса в объект
CurrentRoute
(PR, PR). Соответствующие изменения внесены в документацию (PR), приложения и пакеты:
Демо веб-приложения (PR),
Демо API-приложения (PR),
Yii Router FastRoute Adapter (PR),
Yii Debug API (PR),
Yii Request Model (PR).
⚡️ #yiisoftDocs #yiisoftRequestModel
Актуализировано описание в части работы с роутингом в пакете Yii Request Model (PR) и документации (PR).
Актуализировано описание в части работы с роутингом в пакете Yii Request Model (PR) и документации (PR).
⚡️ #yiisoftRouter
Готовим Yii Router к релизу: подняли уровень psalm до 1 (PR) и удалили интерфейсы
Удалённые интерфейсы вводились для разделения контекстов использования (конфигурирование и получение данных), но практика показала, что это было неудачное решение (типизация по факту некорректная + интерфейсы вводят в заблуждение). Но, чтобы всё-таки повысить удобство публичного API, мы объединили методы, которые требуются только внутри пакета, и пометили их как
• в классе
• в классе
• в классе
• метод
—————
⚡️ #yiisoftRouterFastroute #yiisoftRequestModel #yiisoftYiiDebugApi #yiisoftYiiDataview #yiisoftDocs #yiisoftDemo #yiisoftApp #yiisoftDemoApi
Соответствующие изменения были внесены в документацию (PR), приложения и пакеты:
- Yii Router FastRoute Adapter (PR),
- Yii Request Model (PR, PR),
- Yii Debug API (PR),
- Yii Data Widgets (PR),
- Шаблон веб-приложения (PR),
- Демо веб-приложения (PR),
- Демо API-приложения (PR).
Готовим Yii Router к релизу: подняли уровень psalm до 1 (PR) и удалили интерфейсы
CurrentRouteInterface.php
, GroupInterface
, RouteInterface
, RouteParametersInterface
(PR).Удалённые интерфейсы вводились для разделения контекстов использования (конфигурирование и получение данных), но практика показала, что это было неудачное решение (типизация по факту некорректная + интерфейсы вводят в заблуждение). Но, чтобы всё-таки повысить удобство публичного API, мы объединили методы, которые требуются только внутри пакета, и пометили их как
@internal
:• в классе
Route
методы getDispatcherWithMiddlewares()
, getName()
, getMethods()
, getPattern()
, getHost()
, isOverride()
, getDefaults()
, hasMiddlewares()
, getDispatcherWithMiddlewares()
объединены в один getData()
;• в классе
Group
методы getCorsMiddleware()
, hasCorsMiddleware()
, getMiddlewareDefinitions()
, getItems()
, getPrefix()
, getNamePrefix()
, getHost()
объединены в один getData()
;• в классе
CurrentRoute
методы setRoute()
и setArguments()
объединены в один setRouteWithArguments()
;• метод
CurrentRoute::setUri()
также помечен как @internal
.—————
⚡️ #yiisoftRouterFastroute #yiisoftRequestModel #yiisoftYiiDebugApi #yiisoftYiiDataview #yiisoftDocs #yiisoftDemo #yiisoftApp #yiisoftDemoApi
Соответствующие изменения были внесены в документацию (PR), приложения и пакеты:
- Yii Router FastRoute Adapter (PR),
- Yii Request Model (PR, PR),
- Yii Debug API (PR),
- Yii Data Widgets (PR),
- Шаблон веб-приложения (PR),
- Демо веб-приложения (PR),
- Демо API-приложения (PR).
⚡️ #yiisoftRequestModel
Несколько изменений в пакете Yii Request Model (PR):
- удалили интерфейс
- перенесли конфигурацию пакета из группы
Несколько изменений в пакете Yii Request Model (PR):
- удалили интерфейс
ValidatableModelInterface
, использовав вместо него интерфейс Yiisoft\Validator\RulesProviderInterface
;- перенесли конфигурацию пакета из группы
common
в группу web
.👍2
⚡️ #yiisoftRequestModel #yiisoftDemoApi
В пакете Yii Request Model удалили конфигурацию фабрики мидлварей (PR). Подразумевается, что она должна конфигурироваться в приложении. В демо API-приложения, где используется Yii Request Model так и сделали (PR).
В пакете Yii Request Model удалили конфигурацию фабрики мидлварей (PR). Подразумевается, что она должна конфигурироваться в приложении. В демо API-приложения, где используется Yii Request Model так и сделали (PR).
⚡️ #yiisoftRequestModel #yiisoftForm
К последним изменениям в Yii Validator адаптировали Yii Request Model (PR) и Yii Form (PR).
К последним изменениям в Yii Validator адаптировали Yii Request Model (PR) и Yii Form (PR).
⚡️ #yiisoftRequestModel
В пакете Yii Request Model исправили ошибку, возникавшую при вызове метода
В пакете Yii Request Model исправили ошибку, возникавшую при вызове метода
RequestValidationException::getFirstErrors()
(PR).⚡️ #yiisoftValidator #yiisoftForm #yiisoftRequestModel #yiisoftDemo
Большое обновление Yii Validator (PR).
• Добавлена поддержка атрибутов PHP. Выглядит это приблизительно так:
• В связи с переходом на PHP 8.0 и возможностью использовать именованные аргументы создание правил через статическую фабрику
• Правило
• Правило
• Выполнен внутренний рефакторинг (переименование переменных, небольшие изменения в коде и прочее).
Необходимые изменения (в том числе поднята минимальная версия PHP до 8.0) внесены в пакеты и приложения, зависящие от валидатора:
- Yii Form (PR),
- Yii Request Model (PR),
- Демо веб-приложения (PR).
Большое обновление Yii Validator (PR).
• Добавлена поддержка атрибутов PHP. Выглядит это приблизительно так:
final class Point• Минимальная версия PHP поднята до 8.0.
{
#[HasOne(Coordinates::class)]
private $coordinates;
#[Number(min: -10, max: 10)]
private int $x;
#[Number(min: -10, max: 10)]
private int $y;
}
• В связи с переходом на PHP 8.0 и возможностью использовать именованные аргументы создание правил через статическую фабрику
::rule()
утратило смысл. Теперь правила создаются классическим способом через конструктор (new MyRule()
).• Правило
Each
теперь принимает в качестве правил iterable-значение вместо RuleSet
.• Правило
MatchRegularExpression
переименовано в Regex
.• Выполнен внутренний рефакторинг (переименование переменных, небольшие изменения в коде и прочее).
Необходимые изменения (в том числе поднята минимальная версия PHP до 8.0) внесены в пакеты и приложения, зависящие от валидатора:
- Yii Form (PR),
- Yii Request Model (PR),
- Демо веб-приложения (PR).
👍3🔥1
⚡️ #yiisoftAccess #yiisoftErrorHandler #yiisoftEventDispatcher #yiisoftFactory #yiisoftHttp #yiisoftI18n #yiisoftAliases #yiisoftJson #yiisoftProfiler #yiisoftInjector #yiisoftMailerSymfony #yiisoftMutex #yiisoftRateLimiter #yiisoftNetworkUtilities #yiisoftSession #yiisoftRouter #yiisoftStrings #yiisoftRouterFastroute #yiisoftRequestBodyParser #yiisoftTranslatorMessageGettext #yiisoftTranslatorExtractor #yiisoftTranslatorFormatterSimple #yiisoftTranslator #yiisoftTranslatorFormatterIntl #yiisoftTranslatorMessageDb #yiisoftUser #yiisoftVarDumper #yiisoftViewTwig #yiisoftYiiEvent #yiisoftTranslatorMessagePhp #yiisoftDataResponse #yiisoftCacheFile #yiisoftCookies #yiisoftCsrf #yiisoftAssets #yiisoftAuthJwt #yiisoftLog #yiisoftArrays #yiisoftYiiFilesystem #yiisoftYiiHttp #yiisoftYiiRunnerHttp #yiisoftLogTargetFile #yiisoftLogTargetEmail #yiisoftYiiRunnerRoadrunner #yiisoftSecurity #yiisoftYiiSwagger #yiisoftYiiSentry #yiisoftMutexFile #yiisoftMiddlewareDispatcher #yiisoftTestSupport #yiisoftYiiDebug #yiisoftYiiDebugViewer #yiisoftCacheApcu #yiisoftYiiDataview #yiisoftLogTargetSyslog #yiisoftAuth #yiisoftDefinitions #yiisoftRbacPhp #yiisoftDataDb #yiisoftData #yiisoftRequestModel #yiisoftDi #yiisoftConfig #yiisoftRbacRulesContainer
Продолжаем заменять рабочие процессы на переиспользуемые из Yii GitHub Actions:
- Yii Access (PR)
- Yii Error Handler (PR)
- Yii Event Dispatcher (PR)
- Yii Factory (PR)
- Yii HTTP (PR)
- Yii Internationalization Library (PR)
- Yii Aliases (PR)
- Yii JSON (PR)
- Yii Profiler (PR)
- Yii Injector (PR)
- Yii Mailer Symfony Mailer Extension (PR)
- Yii Mutex (PR)
- Yii Rate Limiter Middleware (PR)
- Yii Network Utilities (PR)
- Yii Session (PR)
- Yii Router (PR)
- Yii Strings (PR)
- Yii Router FastRoute Adapter (PR)
- Yii Request Body Parser (PR)
- Yii Translator gettext Message Storage (PR)
- Yii Message Extractor (PR)
- Yii Translator Simple Message Formatter (PR)
- Yii Message Translator (PR)
- Yii Translator intl Message Formatter (PR)
- Yii Translator DB Message Storage (PR)
- Yii User (PR)
- Yii VarDumper (PR)
- Yii View Twig Renderer (PR)
- Yii Event (PR)
- Yii Translator PHP Message Storage (PR)
- Yii Data Response (PR)
- Yii Cache File Handler (PR)
- Yii Cookies (PR)
- Yii CSRF Protection Library (PR)
- Yii Assets (PR)
- Yii Auth JWT (PR)
- Yii Logging Library (PR)
- Yii Arrays (PR)
- Yii Filesystem (PR)
- Yii HTTP Application (PR)
- Yii HTTP Runner (PR)
- Yii Logging File Target (PR)
- Yii Logging Email Target (PR)
- Yii RoadRunner Runner (PR)
- Yii Security (PR)
- Yii Swagger (PR)
- Yii Sentry (PR)
- Yii Mutex File Driver (PR)
- Yii Middleware Dispatcher (PR)
Продолжаем заменять рабочие процессы на переиспользуемые из Yii GitHub Actions:
- Yii Access (PR)
- Yii Error Handler (PR)
- Yii Event Dispatcher (PR)
- Yii Factory (PR)
- Yii HTTP (PR)
- Yii Internationalization Library (PR)
- Yii Aliases (PR)
- Yii JSON (PR)
- Yii Profiler (PR)
- Yii Injector (PR)
- Yii Mailer Symfony Mailer Extension (PR)
- Yii Mutex (PR)
- Yii Rate Limiter Middleware (PR)
- Yii Network Utilities (PR)
- Yii Session (PR)
- Yii Router (PR)
- Yii Strings (PR)
- Yii Router FastRoute Adapter (PR)
- Yii Request Body Parser (PR)
- Yii Translator gettext Message Storage (PR)
- Yii Message Extractor (PR)
- Yii Translator Simple Message Formatter (PR)
- Yii Message Translator (PR)
- Yii Translator intl Message Formatter (PR)
- Yii Translator DB Message Storage (PR)
- Yii User (PR)
- Yii VarDumper (PR)
- Yii View Twig Renderer (PR)
- Yii Event (PR)
- Yii Translator PHP Message Storage (PR)
- Yii Data Response (PR)
- Yii Cache File Handler (PR)
- Yii Cookies (PR)
- Yii CSRF Protection Library (PR)
- Yii Assets (PR)
- Yii Auth JWT (PR)
- Yii Logging Library (PR)
- Yii Arrays (PR)
- Yii Filesystem (PR)
- Yii HTTP Application (PR)
- Yii HTTP Runner (PR)
- Yii Logging File Target (PR)
- Yii Logging Email Target (PR)
- Yii RoadRunner Runner (PR)
- Yii Security (PR)
- Yii Swagger (PR)
- Yii Sentry (PR)
- Yii Mutex File Driver (PR)
- Yii Middleware Dispatcher (PR)
🤯6👍5
⚡️ #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)
Сделали изменения в стили кода. Методы, вызываемые «цепочкой», перенесли на новую строку:
- 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)
Сделали важный рефакторинг в 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 улучшили сообщение о некорректной конфигурации мидлвари в
В пакете Yii Request Model улучшили сообщение о некорректной конфигурации мидлвари в
MiddlewareFactory
(PR).⚡️ #yiisoftRequestModel
В Yii Request Model добавили возможность в обработчике использовать атрибуты для получения данных из запроса (PR). Например:
Доступные атрибуты:
В 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
.🔥7❤2
⚡️ #yiisoftRequestModel
В Yii Request Model немного порефакторили существующие тесты и добавили новых (PR).
В Yii Request Model немного порефакторили существующие тесты и добавили новых (PR).
🔥2
⚡️ #yiisoftRequestModel
Yii Request Model адаптировали к последней версии
Yii Request Model адаптировали к последней версии
yiisoft/middleware-dispatcher
(PR).