#yiisoftDefinitions #МинорныйРелиз #Релиз
🎁 Yii Definitions 3.4
• Улучшена валидация дефинишенов для свойств «только для чтения» и свойств с ассиметричной видимостью.
• Встроенные функции PHP теперь вызываются в корневом пространстве имён, что в некоторых случаях даёт выигрыш по производительности.
• Удалено «лишнее» условие в
• Явно отмечены свойства классов только для чтения.
• Минимальная версия PHP повышена до 8.1.
• Ограничение версии PHP в
• Для опциональных nullable-параметров явно прописан тип с
🎁 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
• Параметры
• Класс
• Ограничение версии PHP в
• Для опциональных nullable-параметров явно прописан тип с
🎁 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
#yiisoftCsrf #ПатчРелиз #Релиз
🎁 Yii CSRF Protection Library 2.2.1
• Добавлена поддержка
• Ограничение версии PHP в
🎁 Yii CSRF Protection Library 2.2.1
• Добавлена поддержка
yiisoft/session
версии ^3.0
.• Ограничение версии PHP в
composer.json
изменено на ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0
.👍5🔥1👾1
👍4👾1
#yiisoftAssets #МинорныйРелиз #Релиз
🎁 Yii Assets 5.1
• Удалён ненужный вызов
• Ограничение версии PHP в
• Для опциональных nullable-параметров явно прописан тип с
• Уточнены типы для Psalm.
🎁 Yii Assets 5.1
• Удалён ненужный вызов
array_filter
в методе AssetUtil::extractFilePathsForExport()
.• Ограничение версии PHP в
composer.json
изменено на 7.4.* || 8.0 - 8.4
.• Для опциональных nullable-параметров явно прописан тип с
null
для совместимости с PHP 8.4.• Уточнены типы для Psalm.
👍4👾2
#yiisoftHydrator #МинорныйРелиз #Релиз
🎁 Yii Hydrator 1.6
• Добавлена возможность вложенного маппинга с помощью нового класса
• Доработана psalm-аннотации метода
• Ограничение версии PHP в
🎁 Yii Hydrator 1.6
• Добавлена возможность вложенного маппинга с помощью нового класса
ObjectMap
.• Доработана psalm-аннотации метода
HydratorInterface::create()
.• Ограничение версии PHP в
composer.json
изменено на 8.1 - 8.4
.👍10👾2
#yiisoftView #МинорныйРелиз #Релиз
🎁 Yii View 12.1
• В методе
• Исправлено указание текущего представления в сообщении исключения, которое бросается когда используется относительный путь вне текущего представления.
• Ограничение версии PHP в
• Для опциональных nullable-параметров явно прописан тип с
🎁 Yii View 12.1
• В методе
ViewInterface::render()
добавлена возможность использовать путь к представлению, начинающийся с ../
(родительская директория относительно текущего представления).• Исправлено указание текущего представления в сообщении исключения, которое бросается когда используется относительный путь вне текущего представления.
• Ограничение версии PHP в
composer.json
изменено на 8.1 - 8.4
.• Для опциональных nullable-параметров явно прописан тип с
null
для совместимости с PHP 8.4.👍6👾1
#yiisoftMailer #ПатчРелиз #Релиз
🎁 Yii Mailer 6.0.1
• Ограничение версии PHP в
• Для опциональных nullable-параметров явно прописан тип с
🎁 Yii Mailer 6.0.1
• Ограничение версии PHP в
composer.json
изменено на 8.1 - 8.4
.• Для опциональных nullable-параметров явно прописан тип с
null
для совместимости с PHP 8.4.👍5👾1
#yiisoftForm #МинорныйРелиз #Релиз
🎁 Yii Form 1.4
• Доработано оформления поля
• При выводе поля
• Область видимости полей
• Ограничение версии PHP в
🎁 Yii Form 1.4
• Доработано оформления поля
Checkbox
в теме "Bootstrap 5 Horizontal".• При выводе поля
Hidden
игнорируется любой HTML, кроме самого тега <input>
.• Область видимости полей
$beforeInput
и $afterInput
в классе PartsFeild
изменена на protected
.• Ограничение версии PHP в
composer.json
изменено на 8.1 - 8.4
.👍3👾2
#yiisoftHtml #МинорныйРелиз #Релиз
🎁 Yii HTML 3.10
• В статических фабриках
• В метод
• HTML атрибут
• Ограничение версии PHP в
• Для опциональных nullable-параметров явно прописан тип с
🎁 Yii HTML 3.10
• В статических фабриках
Button
параметр $content
сделан опциональным.• В метод
Select::value()
разрешено передавать null
.• HTML атрибут
loading
теперь выводится перед src
.• Ограничение версии PHP в
composer.json
изменено на 8.1 - 8.4
.• Для опциональных nullable-параметров явно прописан тип с
null
для совместимости с PHP 8.4.👍6👾1
#yiisoftRbac #МинорныйРелиз #Релиз
🎁 Yii Role-Based Access Control 2.1
• В классе
• Ограничение версии PHP в
• Исправлена ошибка: в методе
🎁 Yii Role-Based Access Control 2.1
• В классе
Manager
добавлена опциональная зависимость ClockInterface
для получения текущего времени.• Ограничение версии PHP в
composer.json
изменено на 8.1 - 8.4
.• Исправлена ошибка: в методе
Manager::userHasPermission()
не учитывались роли по умолчанию.👍5👾1
🌿 #Полезное
Диёрбек Ибрагимов, один из участников сообщества Yii3, начал записывать серию видеоуроков по Yii3.
Но есть нюанс — уроки на узбекском языке.
В дальнейшем автор планирует добавить русские субтитры. Ну а пока для тех, кто знает узбекский:⚡️ Плейлист на YouTube
Диёрбек Ибрагимов, один из участников сообщества Yii3, начал записывать серию видеоуроков по Yii3.
Но есть нюанс — уроки на узбекском языке.
В дальнейшем автор планирует добавить русские субтитры. Ну а пока для тех, кто знает узбекский:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31😁14👍5⚡2👾2
#yiisoftYiiBootstrap5 #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii Bootstrap 5 1.0.0
Первый стабильный релиз пакета с виджетами для Bootstrap 5:
• Accordion
• Alert
• Breadcrumbs
• Button
• Button Group
• Button Toolbar
• Carousel
• Collapse
• Dropdown
• Modal
• Nav
• NavBar
• Offcanvas
• Progress
• Progress Stack
• Toast
Пример виджета:
🎁 Yii Bootstrap 5 1.0.0
Первый стабильный релиз пакета с виджетами для Bootstrap 5:
• Accordion
• Alert
• Breadcrumbs
• Button
• Button Group
• Button Toolbar
• Carousel
• Collapse
• Dropdown
• Modal
• Nav
• NavBar
• Offcanvas
• Progress
• Progress Stack
• Toast
Пример виджета:
echo Carousel::widget()
->id('carouselExampleOnlyText')
->items(
CarouselItem::to(
Div::tag()
->addClass('bg-primary text-white p-5 text-center')
->addContent(
H2::tag()->content('Title 1'),
P::tag()->content('This is the first slide with text.'),
),
),
CarouselItem::to(
Div::tag()
->addClass('bg-success text-white p-5 text-center')
->addContent(
H2::tag()->content('Title 2'),
P::tag()->content('This is the second slide with text.'),
),
),
CarouselItem::to(
Div::tag()
->addClass('bg-danger text-white p-5 text-center')
->addContent(
H2::tag()->content('Title 3'),
P::tag()->content('This is the third slide with text.'),
),
),
);
👍15🔥11👾1
#yiisoftCookies #ПатчРелиз #Релиз
🎁 Yii Cookies 1.2.3
• Ограничение версии PHP в
• Добавлена возможность использовать реализацию
🎁 Yii Cookies 1.2.3
• Ограничение версии PHP в
composer.json
изменено на ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0
.• Добавлена возможность использовать реализацию
ClockInterface
(PSR-20) для получения текущего времени.👍7👾2
#yiisoftErrorHandler #МинорныйРелиз #Релиз
🎁 Yii Error Handler 4.1
• Добавлена новая фабрика ответа
Например, можно создать свой провайдер для запросов из библиотеки htmx:
И добавить его в конфигурацию фабрики:
•
• Рендереры ответа для исключений теперь добавляют в заголовки ответ тип содержимого.
• Исправлено отображение аргументов функции в тёмном режиме.
🎁 Yii Error Handler 4.1
• Добавлена новая фабрика ответа
Yiisoft\ErrorHandler\ThrowableResponseFactory
с поддержкой провайдеров рендереров.Например, можно создать свой провайдер для запросов из библиотеки htmx:
final readonly class HtmxRendererProvider implements RendererProviderInterface
{
public function get(ServerRequestInterface $request): ?ThrowableRendererInterface
{
if ($request->hasHeader('Hx-Request')) {
return new PlainTextRenderer();
}
return null;
}
}
И добавить его в конфигурацию фабрики:
ThrowableResponseFactoryInterface::class => [
'class' => ThrowableResponseFactory::class,
'__construct()' => [
'rendererProvider' => DynamicReference::to(
static fn(ContainerInterface $container) => new CompositeRendererProvider(
new HeadRendererProvider(),
new HtmxRendererProvider(),
new ContentTypeRendererProvider($container)
)
)
],
],
•
Yiisoft\ErrorHandler\Factory\ThrowableResponseFactory
помечен как устаревший.• Рендереры ответа для исключений теперь добавляют в заголовки ответ тип содержимого.
• Исправлено отображение аргументов функции в тёмном режиме.
👍4👾1
#yiisoftValidator #МинорныйРелиз #Релиз
🎁 Yii Validator 2.3
• Добавлено правило валидации
🎁 Yii Validator 2.3
• Добавлено правило валидации
Uuid
, проверяющее, что значение является строкой с корректным UUID.👍15❤1👾1
#yiisoftYiiRunnerRoadrunner #МинорныйРелиз #Релиз
🎁 Yii RoadRunner Runner 3.1
• Добавлена поддержка Temporal.
• Доработан
- обработка ошибок;
- использование
- проверка конфигурации событий;
- использование DI-контейнера.
• Требуемая версия
• Ограничение версии PHP в
• Для опциональных nullable-параметров явно прописан тип с
🎁 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 ответа;
•
•
•
Вытащили эмиттер из 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
• Добавлена возможность передавать
• Исправлена ошибка, возникающая, если в конфигурации пакета в параметре
🎁 Yii View 12.2
• Добавлена возможность передавать
Stringable
-объекты в метод WebView::setTitle()
.• Исправлена ошибка, возникающая, если в конфигурации пакета в параметре
yiisoft/view → theme → pathMap
передать массив путей тем.👍5👾3
#yiisoftHttpMiddleware
✨ Yii HTTP Middleware
Новый пакет под мидлвари, нацеленные на работу с HTTP. На текущий момент представлена только одна мидлварь:
•
В ближайшее время планируется добавить ещё одну новую:
•
… и перетащить в этот пакет существующие из Yii 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 совместимого эмиттера. Пакет предоставляет интерфейс
•
•
Использование эмиттера предельно простое:
🎁 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