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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
Download Telegram
#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
#yiisoftCsrf #ПатчРелиз #Релиз

🎁 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
#yiisoftUser #ПатчРелиз #Релиз

🎁 Yii User 2.3.1

• Добавлена поддержка yiisoft/session версии ^3.0.
👍4👾1
#yiisoftAssets #МинорныйРелиз #Релиз

🎁 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

• Добавлена возможность вложенного маппинга с помощью нового класса ObjectMap.

• Доработана psalm-аннотации метода HydratorInterface::create().

• Ограничение версии PHP в composer.json изменено на 8.1 - 8.4.
👍10👾2
#yiisoftView #МинорныйРелиз #Релиз

🎁 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 в composer.json изменено на 8.1 - 8.4.

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

🎁 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

• В статических фабриках 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

• В классе Manager добавлена опциональная зависимость ClockInterface для получения текущего времени.

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

• Исправлена ошибка: в методе Manager::userHasPermission() не учитывались роли по умолчанию.
👍5👾1
🌿 #Полезное

Диёрбек Ибрагимов, один из участников сообщества Yii3, начал записывать серию видеоуроков по Yii3.

Но есть нюанс — уроки на узбекском языке.

В дальнейшем автор планирует добавить русские субтитры. Ну а пока для тех, кто знает узбекский: ⚡️ Плейлист на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31😁14👍52👾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

Пример виджета:

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 в 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

• Добавлена новая фабрика ответа 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

• Добавлено правило валидации Uuid, проверяющее, что значение является строкой с корректным UUID.
👍151👾1
#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