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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
Download Telegram
#yiisoftYiiRunnerRoadrunner #МинорныйРелиз #Релиз

🎁 Yii RoadRunner Runner 3.1

• Добавлена поддержка Temporal.

• Доработан RoadRunnerGrpcApplicationRunner, добавлены:
- обработка ошибок;
- использование bootstrap;
- проверка конфигурации событий;
- использование DI-контейнера.

• Требуемая версия yiisoft/error-handler поднята до ^4.0.

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

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

Yii PSR Emitter

Вытащили эмиттер из Yii HTTP Runner в отдельный пакет, содержащий:

• интерфейс эмиттера для отправки PSR-7 ответа;

SapiEmitter — эмиттер, отправляющий ответ с помощью стандартного PHP Server API;

FakeEmitter — фейковый эмиттер, который ничего не отправляет, просто запоминает ответ (предназначен для тестов);

EmitterMiddleware — мидлварь, запускающая эмиттер.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👾1
#yiisoftView #МинорныйРелиз #Релиз

🎁 Yii View 12.2

• Добавлена возможность передавать Stringable-объекты в метод WebView::setTitle().

• Исправлена ошибка, возникающая, если в конфигурации пакета в параметре yiisoft/view → theme → pathMap передать массив путей тем.
👍5👾3
#yiisoftHttpMiddleware

Yii HTTP Middleware

Новый пакет под мидлвари, нацеленные на работу с HTTP. На текущий момент представлена только одна мидлварь:

ContentLengthMiddleware — добавляет/убирает к ответу заголовок Content-Length в соответствие с настройками.

В ближайшее время планируется добавить ещё одну новую:

HeadRequestMiddleware — удаляет содержимое из ответа для HEAD-запросов.

… и перетащить в этот пакет существующие из Yii Middleware:

CorsAllowAll
ForceSecureConnection
HttpCache
TagRequest
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👾1
#yiisoftPsrEmitter #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii PSR Emitter 1.0

Первый релиз PSR-7 совместимого эмиттера. Пакет предоставляет интерфейс EmitterInterface, который отвечает за отправку PSR-7 HTTP ответов, а также несколько реализаций:

SapiEmitter — отправляет ответ с помощью стандартного PHP Server API;
FakeEmiiter — эмиттер, который не делает ничего, только запоминает ответ (предназначен для тестов).

Использование эмиттера предельно простое:

/** 
* @var \Psr\Http\Message\ResponseInterface $response
*/
$emitter = new \Yiisoft\PsrEmitter\SapiEmitter();
$emitter->emit($response);
👍7👾1
#yiisoftDi #МинорныйРелиз #Релиз

🎁 Yii Dependency Injection 1.4

• Добавлен метод TagReference::id(), возвращающий идентификатор тега, по которому можно получить сервисы.

• Улучшена производительность контейнера.

• Параметр $config в конструкторе контейнера сделан опциональным.

• Исключения BuildingException и NotFoundException теперь реализуют FriendlyExceptionInterface.

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

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

🎁 Yii Caching Library 3.1

• Добавлен интерфейс SerializerInterface и его реализация PhpSerializer.

• В классе CacheKeyNormalizer метод normalize() сделан статическим.

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

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

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

🎁 Yii CSRF Protection Library 2.2.2

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

🎁 Yii Logging Library 2.1.1

• Выполнен небольшой рефакторинг внутреннего класса ContextValueExtractor.

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

🎁 Yii HTTP Middleware 1.0.0

Пакет предоставляет набор PSR-15 мидлварей, ориентированных на работу с HTTP-функциональностью.

ContentLengthMiddleware — управляет заголовком Content-Length в ответе, автоматически добавляет/удаляет заголовок в соответствии с параметрами ответа и конфигурацией мидлвари.

CorsAllowAllMiddleware — добавляет CORS-заголовки, разрешающие запросы с любых источников.

ForceSecureConnectionMiddleware — перенаправляет небезопасные HTTP-запросы на HTTPS и добавляет заголовки, повышающие уровень безопасности.

HeadRequestMiddleware — удаляет тело ответа для HEAD-запросов.

HttpCacheMiddleware — реализует HTTP-кеширование с использованием заголовков Cache-Control, ETag и Last-Modified.

TagRequestMiddleware — добавляет в запрос специальный заголовок, который можно использовать для логирования или отладки.
10🔥121👾1
#yiisoftHttpMiddleware #МинорныйРелиз #Релиз

🎁 Yii HTTP Middleware 1.1

• Добавлена мидлварь RemoveBodyMiddleware, которая удаляет тело ответа для ответов с заданными статусами.
10👍6👾1
#yiisoftHtml #МинорныйРелиз #Релиз

🎁 Yii HTML 3.11

• Добавлены классы для тегов pre и code, а также соответствующие методы в классе Html.

• Добавлен psalm-тип OptionsData в классе Select.

• Для опциональных nullable-параметров явно прописан тип с null для совместимости с PHP 8.4 (в прошлый раз пропустили в нескольких местах).
👍4👾1
#yiisoftYiiMiddleware #МинорныйРелиз #Релиз

🎁 Yii Middleware 1.1

• В мидлвари Locale добавлена возможность использовать реализацию ClockInterface из PSR-20 для получения текущего времени.

• Мидлвари CorsAllowAll, ForceSecureConnection, HttpCache и TagRequest помечены как устаревшие.

• Повышены версии зависимостей:
- yiisoft/router до ^4.0;
- yiisoft/session до ^3.0;
- yiisoft/cookie до ^1.2.3.

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

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

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

🎁 Yii HTTP Runner 3.2

• Добавлен метод HttpApplicationRunner::runAndGetResponse(), который возвращает объект ответа вместо отправки клиенту.

• В конструкторе HttpApplicationRunner`добавлены свойства `$emitter, $useRemoveBodyByStatusMiddleware, $useContentLengthMiddleware и $useHeadRequestMiddleware.

• Выполнен рефакторинг внутреннего класса RequestFactory:
- явно помечены свойства только для чтения;
- добавлен тип параметра в методе create().

• Заголовок Content-Length теперь не удаляется, если он задан явно, но подразумевается отправка ответа без тела.
👍7👾2
#yiisoftValidator #МинорныйРелиз #Релиз

🎁 Yii Validator 2.4

• В правиле Nested добавлена возможность использовать callable-правила.

• Добавлена возможность использовать stringable-объекты в качестве сообщения об ошибке.

• Исправлена некорректная работа опции WhenMissing в правиле Nested.

• Исправлена некорректная работа в некоторых случаях использования правила Nested внтури Each.
👍6👾2
#yiisoftDummyProvider #МинорныйРелиз #Релиз

🎁 Yii Dummy Provider 1.1

• Добавлена поддержка виртуального пакета yiisoft/db-implementation.
👍4👾2
#yiisoftYiiRunnerFrankenphp

Yii FrankenPHP Runner

Начата работа над новым раннером, который упростит запуск Yii3 с использованием FrankenPHP в режиме воркера.

Для использования FrankenPHP в классическом режиме отлично подходит уже существующий Yii HTTP Runner.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👾1
#yiisoftValidator #МинорныйРелиз #Релиз

🎁 Yii Validator 2.5

• В объекте Result, представляющем результат валидации, добавлен метод getPropertyErrorMessagesByPath(), возвращающий список ошибок по заданному пути.
👍3👾1
#yiisoftView #ПатчРелиз #Релиз

🎁 Yii View 12.2.1

• В конфигурации пакета для параметра basePath добавлена возможность указывать значение null.
👍3👾1
#yiisoftFormModel #ПатчРелиз #Релиз

🎁 Yii Form Model 1.0.2

• При отображении ошибок учитывается вложенность свойств.

• При генерации названия поля учитывается вложенность свойств.

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