#yiisoftActions #yiisoftQueue
⚡️Обновление GitHub Action для PHPBench
Добавили крутую фичу в экшен для бенчмарков! Теперь он автоматически сравнивает производительность кода в PR с мастер-веткой.
🔍 Что нового
- Экшен блокирует PR, если производительность ухудшилась
- По умолчанию используется сравнение
- Можно настроить свою функцию сравнения
🛠 Использование
Уже работает в репозитории
📃 Документация и примеры
- Исходный код
- Пример использования
- PR и детали реализации
⚡️Обновление GitHub Action для PHPBench
Добавили крутую фичу в экшен для бенчмарков! Теперь он автоматически сравнивает производительность кода в PR с мастер-веткой.
🔍 Что нового
- Экшен блокирует PR, если производительность ухудшилась
- По умолчанию используется сравнение
mode(variant.time.avg)
с допуском ±5%- Можно настроить свою функцию сравнения
🛠 Использование
Уже работает в репозитории
yiisoft/queue
, но можно использовать где угодно.📃 Документация и примеры
- Исходный код
- Пример использования
- PR и детали реализации
1👍11
#yiisoftCsrf #МинорныйРелиз #Релиз
🎁 Yii CSRF Protection Library 2.2
• Добавлена мидлварь
• Добавлена мидлварь
• Добавлен метод
🎁 Yii CSRF Protection Library 2.2
• Добавлена мидлварь
CsrfHeaderMiddleware
, предотвращающая межсайтовую подделку запроса путём проверки пользовательского заголовка запроса. Может использоваться для AJAX/API маршрутов. Подробнее тут. • Добавлена мидлварь
CsrfTokenMiddleware
, являющаяся копией CsrfMiddleware
. CsrfMiddleware
помечена устаревшей.• Добавлен метод
CsrfMiddleware::withSafeMethods()
, позволяющий указать, какие HTTP-методы считать безопасными. По умолчанию это GET
, HEAD
и OPTIONS
.1🔥4👍3❤1👾1
#yiisoftRequirements #МинорныйРелиз #Релиз
🎁 Yii Requirements Checker 1.1
• Добавлен метод
• Улучшена проверка корректности конфигурации.
• Улучшено оформление результатов.
🎁 Yii Requirements Checker 1.1
• Добавлен метод
RequirementsChecker::checkMaxExecutionTime()
для проверки соответствия значения опции max_execution_time
требуемому.• Улучшена проверка корректности конфигурации.
• Улучшено оформление результатов.
👍5👾2
#yiisoftDbMigration #МинорныйРелиз #Релиз
🎁 Yii DB Migration 1.2
• Заменено использование устаревших методов Yii DB на актуальные.
• Минимальная версия PHP поднята до 8.1 и выполнен соответствующий рефакторинг.
После этого релиза начинается работа над адаптацией пакета к грядущей мажорной версии Yii DB.
🎁 Yii DB Migration 1.2
• Заменено использование устаревших методов Yii DB на актуальные.
• Минимальная версия PHP поднята до 8.1 и выполнен соответствующий рефакторинг.
После этого релиза начинается работа над адаптацией пакета к грядущей мажорной версии Yii DB.
👍12👾1
#yiisoftHtml #МинорныйРелиз #Релиз
🎁 Yii HTML 3.9
• В методах
🎁 Yii HTML 3.9
• В методах
Html::addCssClass()
, Tag::addClass()
и Tag::class()
добавлена поддержка типизированных перечислений в качестве CSS классов.👍10❤2👾1
#yiisoftFactory #МинорныйРелиз #Релиз
🎁 Yii Factory 1.3
• Добавлена «строгая» фабрика
🎁 Yii Factory 1.3
• Добавлена «строгая» фабрика
StrictFactory
, которая позволяет создать экземпляры только тех объектов, для которых явно прописаны их определения (дефинишены).👍5👾1
#yiisoftAssets #МажорныйРелиз #Релиз
🎁 Yii Assets 5.0
• Добавлен метод
• Конфигурация
• Добавлен коллектор для
• Минимальная версия PHP поднята до версии 8.1 и выполнен соответствующий рефакторинг.
• Уточнены psalm-типы у свойств класса
• При попытке загрузить несуществующий бандл в
🎁 Yii Assets 5.0
• Добавлен метод
AssetManager::getUrl()
вместо метода getAssetUrl()
, который помечен как устаревший.• Конфигурация
di-web
переименована в di
, а также добавлена возможность установить паблишер в AssetManager
через параметры.• Добавлен коллектор для
yiisoft/yii-debug
.• Минимальная версия PHP поднята до версии 8.1 и выполнен соответствующий рефакторинг.
• Уточнены psalm-типы у свойств класса
AssetBundle
.• При попытке загрузить несуществующий бандл в
AssetManager
теперь бросается исключение.👍11👾1
#yiisoftDefinitions #ПатчРелиз #Релиз
🎁 Yii Definitions 3.3.1
• Исправлено некорректное разрешение
• Удален лишний код в
🎁 Yii Definitions 3.3.1
• Исправлено некорректное разрешение
ParameterDefinition
для опциональных параметров с объединёнными типами. Вместо значения по умолчанию, ранее всегда возвращался null
.• Удален лишний код в
DefinitionStorage
.👍5👾1
#yiisoftView #МажорныйРелиз #Релиз
🎁 Yii View 12.0
• Добавлен метод
• Добавлена возможность передавать
• Добавлен сброс темы при вызове методов
🎁 Yii View 12.0
• Добавлен метод
ViewInterface::deepClone()
, позволяющий клонировать объект вместе с состоянием (параметры, тема, локаль и т. д.). При обычном клонировании состояние остаётся общим для объектов.• Добавлена возможность передавать
null
в методы withBasePath()
и withContext()
интерфейса ViewInterface
.• Добавлен сброс темы при вызове методов
View::withClearedState()
и WebView::withClearedState()
.👍8⚡1👾1
🔥 #Новости
Мы подготовили дорожную карту Yii3.
🖼 Yii3 Roadmap
Карта показывает, что ещё осталось сделать до релиза. Документ планируется «живым» и будет обновляться по мере выполнения / детализации / изменения.
Мы подготовили дорожную карту Yii3.
Карта показывает, что ещё осталось сделать до релиза. Документ планируется «живым» и будет обновляться по мере выполнения / детализации / изменения.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👏4🎄2👾1
#yiisoftYiiViewRenderer #yiisoftYiiView #МинорныйРелиз #Релиз
🎁 Yii View Renderer 7.3
• Добавлена поддержка
• Минимальная требуемая версия Yii View поднята до
• Исправлена проблема с протеканием стека при нескольких вызовах методов рендеринга во
🎁 Yii View Renderer 7.3
• Добавлена поддержка
CsrfTokenMiddleware
в CsrfViewInjection
.• Минимальная требуемая версия Yii View поднята до
^12
.• Исправлена проблема с протеканием стека при нескольких вызовах методов рендеринга во
ViewRenderer
.👍3👾1
#yiisoftTranslator #МинорныйРелиз #Релиз
🎁 Yii Message Translator 3.1
•
• Исправлено: использовалась некорректная локаль, когда категория переводов не задана и указана fallback-локаль.
• Для опциональных nullable-параметров явно прописан тип с
🎁 Yii Message Translator 3.1
•
SimpleMessageFormatter
теперь бросает исключение InvalidArgumentException
если в строке плюрализации пропущен ключ "one".• Исправлено: использовалась некорректная локаль, когда категория переводов не задана и указана fallback-локаль.
• Для опциональных nullable-параметров явно прописан тип с
null
для совместимости с PHP 8.4.👍3🎄3👾2
🔥 #Новости
Александр Макаров опубликовал новую статью на OpenCollective.
🖼 Yii News 2024
Итоги 2024 года для Yii1 / YIi2 / Yii3, изменения в команде и финансировании, релизы. Помимо новостей, статья также содержит большую подборку рекомендуемых для изучения статей.
Александр Макаров опубликовал новую статью на OpenCollective.
Итоги 2024 года для Yii1 / YIi2 / Yii3, изменения в команде и финансировании, релизы. Помимо новостей, статья также содержит большую подборку рекомендуемых для изучения статей.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍13❤4🔥2👏1👾1
#yiisoftRequestProvider #МинорныйРелиз #Релиз
🎁 Yii Request Provider 1.2
• Добавлен класс
• Добавлен класс
• В
🎁 Yii Request Provider 1.2
• Добавлен класс
RequestHeaderProvider
предоставляющий удобный доступ к заголовкам запроса:class MyClass
{
public function __construct(
private \Yiisoft\RequestProvider\RequestHeaderProvider $headers
) {}
public function go(): void
{
$this->headers->has('X-Foo');
$this->headers->get('X-Foo');
$this->headers->getLine('X-Foo');
$this->headers->getAll();
$this->headers->getFirstHeaders();
}
}
• Добавлен класс
RequestCookieProvider
вместо существующего RequestCookies
, который помечен как устаревший.• В
RequestCookieProvider
и RequestCookies
обращение к объекту запроса происходит в момент вызова методов get()
/ has()
, а не в конструкторе, как было ранее.1👍12👾5
#yiisoftCacheFile #МинорныйРелиз #Релиз
🎁 Yii Cache File Handler 3.2
• Директория для хранения файлов кэша теперь создаётся только в момент сохранения кэша. Ранее корневая директория создавалась при создании класса
• После записи данных в кэш теперь сбрасывается кэш состояния файлов (см. clearstatcache()).
• Добавлена обработка состояния гонки при создание папки для файлов с кэшем.
• Для вложенных директорий теперь устанавливаются указанные в конфигурации права.
🎁 Yii Cache File Handler 3.2
• Директория для хранения файлов кэша теперь создаётся только в момент сохранения кэша. Ранее корневая директория создавалась при создании класса
FileCache
.• После записи данных в кэш теперь сбрасывается кэш состояния файлов (см. clearstatcache()).
• Добавлена обработка состояния гонки при создание папки для файлов с кэшем.
• Для вложенных директорий теперь устанавливаются указанные в конфигурации права.
👍5👾1
#yiisoftFormModel #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii File Router 1.0
Первая стабильная версия роутера, основанного на соглашении о размещении контроллеров в определённых пространствах имён (похоже на Yii2). Роутер представляет собой PSR-15 мидлварь и может использоваться как самостоятельно, так и совместно с другим роутером.
Пример структуры:
Работает это так:
•
•
•
•
•
Подробнее см. в документации.
🎁 Yii File Router 1.0
Первая стабильная версия роутера, основанного на соглашении о размещении контроллеров в определённых пространствах имён (похоже на Yii2). Роутер представляет собой PSR-15 мидлварь и может использоваться как самостоятельно, так и совместно с другим роутером.
Пример структуры:
src/
Controller/
User/
Profile/
IndexController.php
BlogController.php
UserController.php
IndexController.php
Работает это так:
•
GET /
→ IndexController::index()
•
GET /user
→ UserController::index()
•
POST /user
→ UserController::create()
•
GET /user/blog/view
→ User/BlogController::view()
•
GET /user/profile
→ User/Profile/IndexController::index()
Подробнее см. в документации.
👍17👾4🔥3❤1
#yiisoftStrings #МинорныйРелиз #Релиз
🎁 Yii Strings 2.5
• Добавлен метод
• Уточнён psalm-тип метода
🎁 Yii Strings 2.5
• Добавлен метод
StringHelper::matchAnyRegex()
, который фактически является фасадом для работы с классом CombinedRegexp
.• Уточнён psalm-тип метода
StringHelper::base64UrlEncode()
.👍9👾2
#yiisoftYiiConsole #МинорныйРелиз #Релиз
🎁 Yii Console 2.3
• Для команды
• В выводе команды
• Для опциональных nullable-параметров явно прописан тип с
🎁 Yii Console 2.3
• Для команды
serve
добавлена опция --open
, позволяющая запустить браузер по умолчанию после запуска сервера.• В выводе команды
serve
добавлена информация о доступных опциях команды.• Для опциональных nullable-параметров явно прописан тип с
null
для совместимости с PHP 8.4.👍8👏1👾1
#yiisoftSwagger #МинорныйРелиз #Релиз
🎁 Yii Swagger 2.2
• Добавлена поддержка
• Минимальная версия PHP поднята до версии 8.1 и выполнен соответствующий рефакторинг.
🎁 Yii Swagger 2.2
• Добавлена поддержка
yiisoft/assets
версии ^5.0
.• Минимальная версия PHP поднята до версии 8.1 и выполнен соответствующий рефакторинг.
👍5👾2
#yiisoftArrays #МинорныйРелиз #Релиз
🎁 Yii Arrays 3.2
• В
• Улучшены типы Psalm для
• Минимальная версия PHP увеличена до 8.1.
• Для опциональных nullable-параметров явно прописан тип с
•
•
🎁 Yii Arrays 3.2
• В
composer.json
ограничение версии PHP изменено на ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0
.• Улучшены типы Psalm для
ArrayHelper::getObjectVars()
, ArrayableInterface
, ArrayableTrait
и ArrayAccessTrait
.• Минимальная версия PHP увеличена до 8.1.
• Для опциональных nullable-параметров явно прописан тип с
null
для совместимости с PHP 8.4. •
ArrayHelper::getValue()
теперь возвращает значение по умолчанию для ключа в виде пустого массива.•
ArrayHelper::keyExists()
теперь возвращает false
для ключа в виде пустого массива.👍3👾1
#yiisoftConfig #МинорныйРелиз #Релиз
🎁 Yii Config 1.6
• Добавлена composer-команда
• Опцию
• Минимальная версия Composer повышена до 2.3.
• Минимальная версия PHP повышена до 8.1 и выполнен соответствующий рефакторинг.
• Ограничение версии PHP в
• Для опциональных nullable-параметров явно прописан тип с
• Выполнен рефакторинг внутренних классов
🎁 Yii Config 1.6
• Добавлена composer-команда
yii-config-info
, которая выводит информацию о конфигурации приложения или пакета.• Опцию
config-plugin-file
теперь можно использовать не только в приложении, но и в пакетах.• Минимальная версия Composer повышена до 2.3.
• Минимальная версия PHP повышена до 8.1 и выполнен соответствующий рефакторинг.
• Ограничение версии PHP в
composer.json
изменено на ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0
.• Для опциональных nullable-параметров явно прописан тип с
null
для совместимости с PHP 8.4. • Выполнен рефакторинг внутренних классов
Options
и ProcessHelper
. Переработано чтение конфигурации.👍4👾1