#yiisoftForm #МинорныйРелиз #Релиз
🎁 Yii Form 1.2
• Добавлен метод
- в соответствии с шаблоном поля;
- обернуть чекбокс в тег
- сбоку от чекбокса.
• Метод
🎁 Yii Form 1.2
• Добавлен метод
Checkbox::labelPlacement()
, позволяющий задать место расположения названия поля:- в соответствии с шаблоном поля;
- обернуть чекбокс в тег
<label>
(по умолчанию);- сбоку от чекбокса.
• Метод
Checkbox::enclosedByLabel()
помечен как устаревший.👍7👾2❤1
#yiisoftDi #МинорныйРелиз #Релиз
🎁 Yii Dependency Injection 1.3
• Добавлен шорткод
• Улучшено использование
• Выполнен небольшой рефакторинг для улучшения производительности контейнера.
• В методах
• Минимальная версия PHP поднята до 8.1 и выполнен соответствующий рефакторинг.
🎁 Yii Dependency Injection 1.3
• Добавлен шорткод
TagReference::to()
для тегов.• Улучшено использование
NotFoundException
для случаев с дефинишенами.• Выполнен небольшой рефакторинг для улучшения производительности контейнера.
• В методах
ContainerConfig::withStrictMode()
и ContainerConfig::withValidate()
для параметра добавлено значение по умолчанию true
.• Минимальная версия PHP поднята до 8.1 и выполнен соответствующий рефакторинг.
👍3❤2👾2
#yiisoftMailer #МажорныйРелиз #Релиз
Существенно переработана абстракция для отправки сообщений электронной почты.
Теперь пакет ни от чего не зависит и, фактически, абстракция состоит из двух интерфейсов:
🎁 Yii Mailer 6.0
• Добавлены простые реализации мейлера
• В конфигурацию пакета добавлена настройка
• Добавлен класс
• Добавлено перечисление
• Изменён
- добавлены методы
- переименован метод
- переименован метод
- в методы
- удалены методы
- удалены методы
• Добавлен класс
• Удалены
• Переработан абстрактный класс для создания мейлеров:
- класс переименован из
- удалены методы
- финализированы методы;
- зависимости помечены как только для чтения.
• Удалены классы
• Переработаны классы событий
- удалён метод
- свойство
- в
- в
• Тип результата методов
• Добавлен класс
• Доработан текст сообщения в исключении, которое выбрасывается, когда callback для получения имени файла в
• Удалена зависимость от
• Зависимость
Существенно переработана абстракция для отправки сообщений электронной почты.
Теперь пакет ни от чего не зависит и, фактически, абстракция состоит из двух интерфейсов:
MessageInterface
(сообщение с методами для установки/получения значений) и MailerInterface
(сервис для отправки сообщений с двумя методами: send
и sendMultiple
).🎁 Yii Mailer 6.0
• Добавлены простые реализации мейлера
NullMailer
и StubMailer
.• В конфигурацию пакета добавлена настройка
FileMailer
.• Добавлен класс
HtmlToTextBodyConverter
для преобразования HTML-содержимого письма в текстовое содержимое.• Добавлено перечисление
Priority
, которое используется вместо числового значения приоритета.• Изменён
MessageInterface
:- добавлены методы
getAttachments()
, getEmbeddings()
, getHeaders()
, withAddedAttachments()
и withAddedEmbeddings()
;- переименован метод
withEmbedded()
в withEmbeddings()
;- переименован метод
withAttached()
в withAttachments()
;- в методы
withEmbeddings()
и withAttachments()
добавлено возможность передавать несколько файлов;- удалены методы
compose()
, withTemplate()
и withLocale()
;- удалены методы
getError()
и withError()
.• Добавлен класс
Messsage
, реализующий MessageInterface
.• Удалены
MessageFactoryInterface
и MessageFactory
. Вместо фабрики сообщения добавлен класс MessageSettings
, который передаётся в мейлер и позволяет донастроить сообщение перед отправкой.• Переработан абстрактный класс для создания мейлеров:
- класс переименован из
Mailer
в BaseMailer
;- удалены методы
beforeSend()
and afterSend()
;- финализированы методы;
- зависимости помечены как только для чтения.
• Удалены классы
MessageBodyRenderer
и MessageBodyTemplate
.• Переработаны классы событий
AfterSend
и BeforeSend
:- удалён метод
getMessage()
;- свойство
$message
сделано публичным и только для чтения;- в
BeforeSend
удалена реализация StoppableEventInterface
;- в
BeforeSend
добавлено свойство $preventSendingMessage
, позволяющее отменить отправку сообщения.• Тип результата методов
MessageInterface::with*
изменён с self
на static
.• Добавлен класс
SendResults
, который используется как результат выполнения метода MailerInterface::sendMultiple()
.• Доработан текст сообщения в исключении, которое выбрасывается, когда callback для получения имени файла в
FailMailer
возвращает не строковое значение. Само исключение изменено с RuntimeException
на LogicException
.• Удалена зависимость от
yiisoft/view
.• Зависимость
psr/event-dispatcher
сделана опциональной.👍5❤1😱1👀1🤝1👾1
#yiisoftMailerSymfony #МажорныйРелиз #Релиз
🎁 Yii Mailer Symfony Mailer Extension 4.0
• Пакет адаптирован к Yii Mailer 6:
- удалён класс
- в конструкторе мейлера добавлен параметр
- удалено использование
• Исправлено: для вложений не использовался ID файла.
• Изменения в конфигурации пакета:
- удалена конфигурация
- в параметрах удалён ключ
- в парамтерах ключ
• Минимальная версия PHP поднята до 8.1.
• Зависимость
🎁 Yii Mailer Symfony Mailer Extension 4.0
• Пакет адаптирован к Yii Mailer 6:
- удалён класс
Message
;- в конструкторе мейлера добавлен параметр
$messageSettings
;- удалено использование
MessageBodyRenderer
.• Исправлено: для вложений не использовался ID файла.
• Изменения в конфигурации пакета:
- удалена конфигурация
FileMailer
;- в параметрах удалён ключ
writeToFiles
;- в парамтерах ключ
symfony/mailer
изменён на yiisoft/mailer-symfony
.• Минимальная версия PHP поднята до 8.1.
• Зависимость
psr/event-dispatcher
сделана опциональной.❤3👍2👾1
❌ #yiisoftMailerView
Пакет Yii Mailer View закрыт. В процессе разработки столкнулись с тем, что в текущем виде он практически бесполезен. Возможно, в будущем интеграция Yii Mailer и Yii View будет переосмыслена и разработка возобновится.
Пакет Yii Mailer View закрыт. В процессе разработки столкнулись с тем, что в текущем виде он практически бесполезен. Возможно, в будущем интеграция Yii Mailer и Yii View будет переосмыслена и разработка возобновится.
😁4🤔2👍1😢1👾1
🔥 #Новости
Закрытый телеграм-чат с разработчиками Yii3
Ранее доступ в чат предоставлялся подписчикам на boosty и sponsr. Технически доступ в чат контролировали боты этих систем.
В субботу бот Boosty вдруг решил, что он самый главный, и удалил тех, кто не был подписчиком именно на Boosty. Нам такой вариант не подходит.
Теперь доступ в чат будет предоставляться после оплаты раз и навсегда.
Как вступить в закрытый чат?
1) Сделать пожертвование с помощью sponsr, boosty или Open Collective на сумму 2000 ₽ или больше.
2) Написать письмо на почту [email protected], где указать ваш логин в Telegram и приложить подтверждение оплаты (можно просто скриншот).
———
Удалённым участникам закрытого чата отправлена ссылка-приглашение. Если кому-то не пришло, отпишитесь в комментариях к этой заметке или на почту [email protected].
Закрытый телеграм-чат с разработчиками Yii3
Ранее доступ в чат предоставлялся подписчикам на boosty и sponsr. Технически доступ в чат контролировали боты этих систем.
В субботу бот Boosty вдруг решил, что он самый главный, и удалил тех, кто не был подписчиком именно на Boosty. Нам такой вариант не подходит.
Теперь доступ в чат будет предоставляться после оплаты раз и навсегда.
Как вступить в закрытый чат?
1) Сделать пожертвование с помощью sponsr, boosty или Open Collective на сумму 2000 ₽ или больше.
2) Написать письмо на почту [email protected], где указать ваш логин в Telegram и приложить подтверждение оплаты (можно просто скриншот).
———
Удалённым участникам закрытого чата отправлена ссылка-приглашение. Если кому-то не пришло, отпишитесь в комментариях к этой заметке или на почту [email protected].
👍11❤2👾1
#yiisoftRequestProvider #МинорныйРелиз #Релиз
🎁 Yii Request Provider 1.1
• Добавлен класс
• В конфигурации пакета добавлен слушатель события
🎁 Yii Request Provider 1.1
• Добавлен класс
RequestCookies
, предоставляющий удобный доступ к кукам запроса.• В конфигурации пакета добавлен слушатель события
BeforeMiddleware
из Yii Middleware Dispatcher, который автоматически запоминает объект запроса.1👍3👾1
#yiisoftHtml #МинорныйРелиз #Релиз
🎁 Yii HTML 3.8
• Добавлена возможность обернуть элемент в произвольный тег в виджетах
-
-
-
-
-
-
-
-
• Добавлены методы
• Добавлен опциональный параметр
• Добавлен psalm-тип
• Добавлен psalm-тип
• Минимальная версия PHP поднята до 8.1.
🎁 Yii HTML 3.8
• Добавлена возможность обернуть элемент в произвольный тег в виджетах
CheckboxList
и RadioList
, для чего созданы методы:-
CheckboxList::checkboxWrapTag()
-
CheckboxList::checkboxWrapAttributes()
-
CheckboxList::checkboxWrapClass()
-
CheckboxList::addCheckboxWrapClass()
-
RadioList::radioWrapTag()
-
RadioList::radioWrapAttributes()
-
RadioList::radioWrapClass()
-
RadioList::addRadioWrapClass()
• Добавлены методы
CheckboxList::checkboxLabelWrap()
и RadioList::radioLabelWrap()
, позволяющие указать, нужно ли оборачивать поле тегом <label>
или разместить его сбоку.• Добавлен опциональный параметр
wrap
в методе BooleanInputTag::label()
, указывающий, нужно ли оборачивать поле тегом <label>
или разместить его сбоку.• Добавлен psalm-тип
non-empty-string
для результата метода Html::generateId()
.• Добавлен psalm-тип
non-empty-string|null
для параметра метода Tag::id()
.• Минимальная версия PHP поднята до 8.1.
1👍7🥱1👾1
#yiisoftForm #МинорныйРелиз #Релиз
🎁 Yii Form 1.3
• В виджете
-
-
-
-
-
• В виджете
-
-
-
-
-
• Улучшена HTML верстка виджетов
🎁 Yii Form 1.3
• В виджете
CheckboxList
добавлены методы:-
checkboxWrapTag()
,-
checkboxWrapAttributes()
,-
checkboxWrapClass()
,-
addCheckboxWrapClass()
,-
checkboxLabelWrap()
.• В виджете
RadioList
добавлены методы:-
radioWrapTag()
,-
radioWrapAttributes()
,-
radioWrapClass()
,-
addRadioWrapClass()
,-
radioLabelWrap()
.• Улучшена HTML верстка виджетов
CheckboxList
и RadioList
в темах Bootstrap 5.1👍7❤1👾1
#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