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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
加入频道
#Рецепты #yiisoftApp #yiisoftYiiMiddleware

🍕 Yii3 в подпапке домена, Сергей Предводителев

На примере шаблона веб-приложения пошагово разбирается, как разместить точку входа в приложение и публичные файлы в подпапке домена, такой как https://example.com/application/.
👍2
⚡️ #yiisoftAccess #yiisoftRbac

В пакете Yii Role-Based Access Control добавили понятие "гостевая роль" и разрешили проверку прав для гостевых пользователей (ID у таких равен null): если указана гостевая роль, то проверка будет выполняться для неё, а если нет, то всегда будет возвращаться false (PR).

Также внесли изменение в пакет Yii Access: В интерфейсе AccessCheckerInterface разрешили передавать null для ID пользователя в методе userHasPermission() (PR).
👍1
⚡️ #yiisoftYiiRunner

Обновили зависимости, сделали небольшой рефакторинг и "причесали" служебные файлы в пакете Yii Runner (PR).
#yiisoftTranslatorMessagePhp #ПатчРелиз #Релиз

🎁 Yii Translator PHP Message Storage 1.0.4

• Добавлена поддержка кодов языков, содержащих цифры. Например, en-150 (PR).
⚡️ #yiisoftMiddlewareDispatcher

Улучшили описания в doc-блоках и обновили dev-зависимости в пакете Yii Middleware Dispatcher (PR).
⚡️ #yiisoftYiiRunnerHttp

В Yii HTTP Runner убрали избыточную проверку на перезапись заголовков при их отправке, так как все ранее установленные заголовки удаляются функцией header_remove() (PR).
⚡️ #yiisoftAccess

Доработали описание в readme и doc-блоках пакета Yii Access, а также добавили в GitHub Actions проверку на слом обратной совместимости и немного подчистили служебные файлы (PR).
⚡️ #yiisoftCacheDb

В пакете Yii Cache DB Handler добавили yiisoft/psr-dummy-provider в dev-зависимости и добавили опцию source-directory в конфигурации для config-плагина (PR).
👍3
⚡️ #yiisoftRbac

В библиотеке Yii Role-Based Access Control добавили композитное правило, позволяющее группировать правила (PR). Примеры:

// Fresh and owned
$compositeRule = new CompositeRule(
'fresh_and_owned',
CompositeRule::AND,
[new FreshRule(), new OwnedRule()]
);

// Fresh or owned
$compositeRule = new CompositeRule(
'fresh_and_owned',
CompositeRule::OR,
[new FreshRule(), new OwnedRule()]
);
⚡️ Во всех пакетах Yii3 обновили конфигурацию логгера в Infection в соответствии с последними изменениями в Infection: теперь в Stryker Dashboard отправляется подробный отчёт о результатах мутационного тестирования.
👍3
#yiisoftFiles #ПатчРелиз #Релиз

🎁 Yii Files 1.0.2

Исправили тип возвращаемый функцией обратного вызова передаваемой в set_error_handler() в методе FileHelper::openFile() (PR).
⚡️ #yiisoftRbac

Улучшили/добавили описания в doc-блоках в библиотеке Yii Role-Based Access Control (PR).
#yiisoftMutex #ПатчРелиз #Релиз

🎁 Yii Mutex 1.1.1

Добавлена проверка на корректность значения, передаваемого в метод RetryAcquireTrait::withRetryDelay(). Если задержка менее 1 миллисекунды, то будет выброшено исключение InvalidArgumentException (PR).
👍1
⚡️ #yiisoftRbac

В пакете Yii Role-Based Access Control доработали документацию (PR), улучшили описания в doc-блоках и подняли уровень psalm до 1 (PR).

Похоже, скоро будет релиз пакета.
⚡️ #yiisoftYiiDevTool

В Yii Development Tool добавили команду git/clone (PR).
⚡️ #yiisoftRbac #yiisoftRbacPhp

В пакете Yii Role-Based Access Control финализировали классы Assignment, DenyAll, ClassNameRuleFactory и публичные методы в абстрактном классе Item (PR), а также немного улучшили аннотации для psalm (PR).

В Yii RBAC PHP File Storage подняли уровень psalm до 1, доработали описание в readme и "подчистили" служебные файлы (PR)
⚡️ #yiisoftAccess

В пакете Yii Access добавлены две простых реализации интерфейса AccessCheckerInterface (PR):
- DenyAll — запретить всем;
- AllowAll — разрешить всем.
#yiisoftYiiSwagger #МинорныйРелиз #Релиз

🎁 Yii Swagger 1.1.0

Добавлена возможность конфигурирования Yii\Swagger\Middleware\SwaggerJson через config/params.php (PR).

Пример конфигурации:

'yiisoft/yii-swagger' => [
// Директории, где будут использоваться аннотации
'annotation-paths' => [
'@src/Controller'
],
// Включает кэширование и устанавливает TTL, "null" означает "вечный" кэш
'cacheTTL' => 60
]

—————

⚡️ #yiisoftDemo #yiisoftDemoApi #yiisoftAppApi

Соответствующие изменения внесены в приложения:

Демо веб-приложения (PR),
Демо API-приложения (PR),
Шаблон API-приложения (PR).
#yiisoftAccess #МинорныйРелиз #Релиз

🎁 Yii Access 1.1.0

Добавлены две простых реализации интерфейса AccessCheckerInterface:
- DenyAll — запретить всем;
- AllowAll — разрешить всем.
⚡️ #yiisoftRbac #yiisoftRbacPhp

Продолжается подготовка RBAC к релизу.

• В абстрактном классе \Yiisoft\Rbac\Rule имя правила в конструкторе сделали опциональным: если его не передали, то в качестве имени правила будет использоваться имя класса (PR).

• Для правил добавили новый интерфейс RuleInterface, теперь правила реализуют его, а не ItemInterface (PR) и адаптировали к этому изменению Yii RBAC PHP File Storage (PR).

• Из Yii RBAC удалили класс DenyAll (PR), а точнее перенесли его ранее в Yii Access.

• Улучшили аннотации psalm в Yii RBAC (PR) и Yii RBAC PHP File Storage (PR).
⚡️ #yiisoftDb

В пакете Yii DB добавили возможность включить вечное кэширование схемы и запросов с помощью установки длительности кэша в null в методах SchemaCache::setDuration() и QueryCache::setDuration() соответственно (PR).