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

Обсуждение:
https://t.iss.one/yii3ru

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
Download Telegram
🔥 #Новости

Александр Макаров опубликовал новую статью на OpenCollective.

🖼 Yii News 2024

Итоги 2024 года для Yii1 / YIi2 / Yii3, изменения в команде и финансировании, релизы. Помимо новостей, статья также содержит большую подборку рекомендуемых для изучения статей.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍134🔥2👏1👾1
#yiisoftRequestProvider #МинорныйРелиз #Релиз

🎁 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

• Директория для хранения файлов кэша теперь создаётся только в момент сохранения кэша. Ранее корневая директория создавалась при создании класса FileCache.

• После записи данных в кэш теперь сбрасывается кэш состояния файлов (см. clearstatcache()).

• Добавлена обработка состояния гонки при создание папки для файлов с кэшем.

• Для вложенных директорий теперь устанавливаются указанные в конфигурации права.
👍5👾1
#yiisoftFormModel #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii File Router 1.0

Первая стабильная версия роутера, основанного на соглашении о размещении контроллеров в определённых пространствах имён (похоже на Yii2). Роутер представляет собой PSR-15 мидлварь и может использоваться как самостоятельно, так и совместно с другим роутером.

Пример структуры:

src/
Controller/
User/
Profile/
IndexController.php
BlogController.php
UserController.php
IndexController.php


Работает это так:

GET /IndexController::index()
GET /userUserController::index()
POST /userUserController::create()
GET /user/blog/viewUser/BlogController::view()
GET /user/profileUser/Profile/IndexController::index()

Подробнее см. в документации.
👍17👾4🔥31
#yiisoftStrings #МинорныйРелиз #Релиз

🎁 Yii Strings 2.5

• Добавлен метод StringHelper::matchAnyRegex(), который фактически является фасадом для работы с классом CombinedRegexp.

• Уточнён psalm-тип метода StringHelper::base64UrlEncode().
👍9👾2
#yiisoftYiiConsole #МинорныйРелиз #Релиз

🎁 Yii Console 2.3

• Для команды serve добавлена опция --open, позволяющая запустить браузер по умолчанию после запуска сервера.

• В выводе команды serve добавлена информация о доступных опциях команды.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
👍8👏1👾1
#yiisoftSwagger #МинорныйРелиз #Релиз

🎁 Yii Swagger 2.2

• Добавлена поддержка yiisoft/assets версии ^5.0.

• Минимальная версия PHP поднята до версии 8.1 и выполнен соответствующий рефакторинг.
👍5👾2
#yiisoftArrays #МинорныйРелиз #Релиз

🎁 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-команда 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
#yiisoftErrorHandler #МажорныйРелиз #Релиз

🎁 Yii Error Handler 4.0

• На странице ошибки добавлен вывод кода исключения.

• В трейсе добавлены аргументы, передаваемые в функции и методы.

• Генерация ответа в мидлвари ErrorCatcher вынесена в отдельную фабрику ThrowableResponseFactory.

ErrorHandler теперь передаёт в логгер только сообщение об ошибки вместо вывода всего исключения.

• В конструкторе HtmlRenderer добавлены отдельные параметры для всех настроек, а параметр $settings помечен как устаревший.

• Минимальная версия PHP повышена до 8.1 и выполнен соответствующий рефакторинг.

• Ограничение версии PHP в composer.json изменено на ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
👍6👾1
#yiisoftStrings #МинорныйРелиз #Релиз

🎁 Yii Strings 2.6

StringHelper::parsePath() для пустой строки теперь возвращает [''] вместо [] ранее.

• В методах trim(), ltrim() и rtrim() хелпера StringsHelper добавлена проверка на то, что входящая строка является корректной UTF-8 строкой.

• Минимальная версия PHP повышена до 8.1 и выполнен соответствующий рефакторинг.

• Ограничение версии PHP в composer.json изменено на ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
👍6👾2🏆1
#yiisoftValidator #МинорныйРелиз #Релиз

🎁 Yii Validator 2.2

• В правиле Each добавлен параметр stopOnError, который позволяет прекратить валидацию следующих элементов, если текущий элемент оказался невалидным.

• Ограничение версии PHP в composer.json изменено на ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0.

• Минимальная требуемая версия yiisoft/strings поднята до ^2.6.

• Небольшой рефакторинг с использованием возможностей, появившихся в PHP 8.1.

• Исправлена ошибка в правиле Email, которая возникала в граничном случае, когда используется IDN, пользовательское регулярное выражение и включена DNS-проверка.

• Исправлена ошибка, возникающая при обработке правила URL в PHP 8.4, когда валидируется пустая строка.

• Исправлена обработка хука для вложенных объектов, реализующих PostValidationHookInterface, когда используется правило Nested с заданными правилами.

• Исправлен русский перевод сообщения об ошибке для правила FilledAtLeast.
👍11👾1
#yiisoftYiiRunnerHttp #МинорныйРелиз #Релиз

🎁 Yii HTTP Runner 3.1

• В HttpApplicationRunner добавлен параметр $temporaryErrorHandler, а параметр $logger и метод withTemporaryErrorHandler() помечены устаревшими.

• Минимальная версия PHP повышена до 8.1 и выполнен соответствующий рефакторинг.

• Ограничение версии PHP в composer.json изменено на ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
👍7👾1
#yiisoftTestSupport #ПатчРелиз #Релиз

🎁 Yii Test Support 3.0.2

• Ограничение версии PHP в composer.json изменено на ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
👍5👾2
#yiisoftUser #МинорныйРелиз #Релиз

🎁 Yii User 2.3

• Добавлен метод аутентификации ApiAuth.

• Создана копия класса UserAuth с именем WebAuth, сам UserAuth помечен как устаревший.

• Доработано отладочное сообщение "Unable to authenticate user…" в LogginMiddleware.

• Ограничение версии PHP в composer.json изменено на ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
🔥8👾3
#yiisoftRouter #МажорныйРелиз #Релиз

🎁 Yii Router 4.0

• Изменён контракт UrlGeneratorInterface: при генерации URL все неиспользованные аргументы должны быть добавлены как query-параметры, если явно не задан query-параметр с таким же именем.

• В методах generate(), generateAbsolute() и generateFromCurrent() интерфейса UrlGeneratorInterface добавлен параметр $hash.

• Удален метод RouteCollectorInterface::addGroup(), вместо него предполагается использование метода addRoute().

• Удалена зависимость классов Route, Group и MatchingResult от диспетчера мидлварей.

• Уточнён psalm-тип для аргументов в UrlGeneratorInterface.

• Добавлен сборщик данных для Yii Debug.

• Явно отмечены свойства классов только для чтения.

• Минимальная версия PHP повышена до 8.1.

• Ограничение версии PHP в composer.json изменено на ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
1👍3👾2
#yiisoftRouterFastroute #МажорныйРелиз #Релиз

🎁 Yii Router FastRoute Adapter 4.0

• Пакет адаптирован к Yii Router 4.

• В конфигурацию пакета добавлены параметры host и scheme, которые используются при инициализации UrlGenerator.

• Встроенные функции PHP теперь вызываются в корневом пространстве имён, что в некоторых случаях даёт выигрыш по производительности.

• Минимальная версия PHP повышена до 8.1 и выполнен соответствующий рефакторинг.

• Ограничение версии PHP в composer.json изменено на 8.1 - 8.4.
👍7👾2
#yiisoftRouterFastroute #ПатчРелиз #Релиз

🎁 Yii Router FastRoute Adapter 4.0.1

• Исправлено: при генерации URL неиспользованные аргументы не добавлялись к query-параметрам.
👍5👾2
#yiisoftSecurity #МинорныйРелиз #Релиз

🎁 Yii Security 1.1

• Для параметров с чувствительными данными (пароли, хэши) добавлен атрибут #[SensitiveParameter].

• Явно отмечены свойства классов только для чтения.

• Минимальная версия PHP повышена до 8.1.

• Ограничение версии PHP в composer.json изменено на 8.1 - 8.4.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
👍6👾3
#yiisoftDefinitions #МинорныйРелиз #Релиз

🎁 Yii Definitions 3.4

• Улучшена валидация дефинишенов для свойств «только для чтения» и свойств с ассиметричной видимостью.

• Встроенные функции PHP теперь вызываются в корневом пространстве имён, что в некоторых случаях даёт выигрыш по производительности.

• Удалено «лишнее» условие в DefinitionValidator::validate(), которое выполнялось всегда.

• Явно отмечены свойства классов только для чтения.

• Минимальная версия PHP повышена до 8.1.

• Ограничение версии PHP в composer.json изменено на ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
👍5👾1
#yiisoftSession #МажорныйРелиз #Релиз

🎁 Yii Session 3.0

• Параметры sid_length и sid_bits_per_character удалены из конфигурации сессии по умолчанию. Это изменение может повлиять на текущие сессии, подробнее в инструкции по обновлению.

• Класс SessionException помечен как финальный.

• Ограничение версии PHP в composer.json изменено на 8.0 - 8.4.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4.
👍4👾1