Хроники Yii3
622 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 3.1

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

• Добавлена поддержка пакета psr/http-message версии ^2.0.
👍2👾1
#yiisoftDb #yiisoftDbPgsql #yiisoftDbMysql #yiisoftDbSqlite #yiisoftDbMssql #yiisoftDbOracle #МинорныйРелиз #Релиз

Минорные релизы Yii DB и адаптеров к основным СУБД с исправлением ошибок и несколькими улучшениями.


🎁 Yii Database 1.3

• В контекст лога добавлен тип сообщения.

• Разрешено использование метода DMLQueryBuilderInterface::batchInsert() без указания колонок.

• Добавлен метод DbStringHelper::isReadQuery().

• Исправлено: метод Query::count() возвращал некорректное значение, если результат больше PHP_INT_MAX.

• Исправлена ошибка, возникающая в методе AbstractCommand::getRawSql(), если используется параметр со Stringable значением.

• Исправлено приведение числа к строке в методе AbstractCommand::getRawSql().

• Исправлена ошибка при изменении префикса в AbstractConnection.

• Уточнены psalm-типы.

• Методы помечены устаревшими:
- AbstractSchema::normalizeRowKeyCase()
- SchemaInterface::getRawTableName()
- Quoter::getRawTableName()
- SchemaInterface::isReadQuery()

• Параметр $rawSql в методе AbstractCommand::internalExecute() помечен устаревшим.

• Оптимизация производительности и рефакторинг.

Подробный список изменений тут.


🎁
Yii DB PostgreSQL Driver 1.3

• Добавлена поддержка составных (structured) типов.

• Добавлена поддержка ограничений (constraints) в представлениях (table view).

• Свойство Schema::$typeMap заменено на константу Schema::TYPE_MAP.

• Исправлено: в редких кейсах при чтении индекса в индекс попадали поля, которых там быть не должно.

• Оптимизация производительности и рефакторинг.


🎁 Yii DB MySQL Driver 1.2

• Свойство Schema::$typeMap заменено на константу Schema::TYPE_MAP.

• Исправлена ошибка при использовании метода Command::insertWithReturningPks() с пустыми значениями.

• Оптимизация производительности и рефакторинг.


🎁 Yii DB SQLite Driver 1.2

• Свойство Schema::$typeMap заменено на константу Schema::TYPE_MAP.

• Оптимизация производительности и рефакторинг.


🎁 Yii DB MSSQL Server Driver 1.2

• Свойство Schema::$typeMap заменено на константу Schema::TYPE_MAP.

• Исправлены ошибки в методах Command::insertWithReturningPks() и DMLQueryBuilder::insertWithReturningPks(), возникающие в редких кейсах.

• Оптимизация производительности и рефакторинг.


🎁 Yii DB Oracle Driver 1.3

• Разрешено использование метода DMLQueryBuilderInterface::batchInsert() без указания колонок.

• Свойство Schema::$typeMap заменено на константу Schema::TYPE_MAP.

• Исправлена ошибка, возникающая при использовании Query без указания FROM.

• Исправлена ошибка при использовании метода Command::insertWithReturningPks() с таблицей без первичного ключа.

• Исправлено: метод Schema::getTableSequenceName() теперь возвращает null вместо пустой строки.

• Оптимизация производительности и рефакторинг.
👍5🔥2👾1
#yiisoftCycle #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Cycle 1.0

В релиз ушёл ещё 1 пакет. На этот раз это обертка над Cycle ORM для Yii экосистемы. Cycle известен поддержкой как классических, так и демонизированных приложений на основе, например, RoadRunner.

Пакет предлагает набор консольных команд и инструментов для удобства работы с миграциями и схемами баз данных.

Незадолго до релиза было принято решение часть, связанную с адаптацией Yii Data, вынести в отдельный пакет - Yii Data Cycle, по аналогии с Yii Data DB. Все они также в шаге от релиза. После Yii Data 2.0 последуют первые релизы пакетов-адаптеров.

Хотели бы напомнить, что использование Yii Cycle в демо не означает, что это рекомендованный инструмент / пакет по умолчанию для работы с БД. Вы также можете выбрать, например, Yii DB.

Покрытие тестами, мутационный индекс и уровень статического анализа подтянули до максимума.
👍10🔥74
#yiisoftQueueDb

Yii Queue DB

Новый пакет, в котором планируется реализовать Yii Queue адаптер для работы очередей через базу данных c помощью Yii DB.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👾1
#yiisoftHydrator #МинорныйРелиз #Релиз

🎁 Yii Hydrator 1.2

• Добавлен PHP атрибут ToDateTime для приведения значения к объекту DateTimeImmutable или DateTime.

• Добавлены PHP атрибуты для удаления пробелов (или других символов) в начале и/или конце строки:
- Trim
- LeftTrim
- RightTrim

• Минимальная версия PHP повышена до 8.1.
👍14👾2
#yiisoftArrays #МинорныйРелиз #Релиз

🎁 Yii Arrays 3.1

• Добавлен метод ArrayHelper::renameKey() для переименования ключа в массиве.

• Добавлен метод ArrayHelper::parametrizedMerge(), позволяющий рекурсивно слить два или более массивов с заданным уровнем вложенности.

• В методе ArrayHelper::getObjectVars() уточнён тип результата: array|nullarray.

• Выполнен небольшой рефакторинг в ArrayableTrait.
🔥8👍1👾1
#yiisoftValidator #МинорныйРелиз #Релиз

🎁 Yii Validator 1.3

• Добавлено правило Image для валидации размеров изображения.

• Добавлены правила Date, DateTime и Time для валидации даты/времени.

• В классе Result добавлены методы addErrorWithFormatOnly() и addErrorWithoutPostProcessing().

• Уточнены psalm-типы в классе Result.
👍10👾1
#yiisoftCookies #ПатчРелиз #Релиз

🎁 Yii Cookies 1.2.2

• Добавлена поддержка пакета psr/http-message версии ^2.0.
👍9👾2
🔥 #Новости

Одним из источников пополнения фонда Yii является сервис Tidelift. Недавно руководство сервиса решило существенно сократить выплаты разработчикам PHP-пакетов, что по итогу привело к снижению на ~35% поступлений в наш фонд.

Из фонда Yii финансируется вся разработка фреймворка. Несмотря на уменьшение поступлений, работа будет продолжена, но поддержка, конечно, не будет лишней.

Вы можете поддержать нас финансово на следующих площадках:

⭐️ sponsr

⭐️ boosty

⭐️ Open Collective

Возможно, ваша компания использует фреймворк Yii и неё появится желание в какой-то мере проспонсировать разработку (хорошая идея — обсудить это с руководством 😎). В свою очередь, мы можем рассказать о компании-спонсоре на ресурсах Yii, что положительно скажется на репутации в среде разработчиков.

И ещё напомню, что подписчики на sponsr и boosty получают доступ к закрытому чату с разработчиками Yii3 в Telegram, где можно будет узнать эксклюзивные подробности о процессе разработки и обсудить идеи дальнейшего развития фреймворка.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🤔2👍1👾1
#yiisoftCacheApcu #МинорныйРелиз #Релиз

🎁 Yii Cache Library - APCu Handler 1.1

• Подняты минимальные версии зависимостей: psr/simple-cache - до ^2.0|^3.0, а PHP - до ^8.0.
🔥4👍1😐1
#yiisoftSession #МинорныйРелиз #Релиз

🎁 Yii Session 2.1

• Добавлена поддержка пакета psr/http-message версии ^2.0.

• Минимальная версия PHP поднята до 8.0.
👍2👾2
#yiisoftAuth #ПатчРелиз #Релиз

🎁 Yii Auth 3.1.1

• Добавлена поддержка пакета psr/http-message версии ^2.0.
👍5👾3
#yiisoftUser #МинорныйРелиз #Релиз

🎁 Yii User 2.2

• Добавлена возможность в методе CurrentUser::can() в качестве имени разрешения использовать строковые перечисления.

• В мидлваре LoginMiddleware уровень лога изменён с warning на debug.

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

• Добавлена поддержка пакета psr/http-message версии ^2.0.
👍9👾3
#yiisoftCsrf #ПатчРелиз #Релиз

🎁 Yii CSRF Protection Library 2.1.1

• Добавлена поддержка пакета psr/http-message версии ^2.0.
👍4👾1
🔥 #yiisoftActiveRecord #Новости

В ближайшее время планируются мажорные изменения в пакете yiisoft/active-record.

Если пользуетесь этим пакетом, рекомендуем зафиксировать текущую версию.

Пример как это сделать через секцию require в composer.json:

"require": {
...
"yiisoft/active-record": "dev-master#f4966ccef816c1ed77741fa4c2945ce05ce37695",
...
}
👍10👌1
#yiisoftDocumentor

Yii Documentor

Создан репозиторий под инструменты для работы с документацией в пакетах (генерация, переводы и прочее).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👾2
#yiisoftValidator #МинорныйРелиз #Релиз

🎁 Yii Validator 1.4

• Добавлены правила, проверяющие тип значения — boolean, float, integer и string.

• Добавлено правило UniqueIterable, которое проверяет, что массив содержит только уникальные значения.

• Добавлено правило AnyRule, позволяющее связывать правила логическим "ИЛИ".

• В объекте Result добавлены новые методы:
- getFirstErrorMessagesIndexedByPath(),
- getFirstErrorMessagesIndexedByAttribute(),
- add().
👍11👾2
#yiisoftMailerSymfony #ПатчРелиз #Релиз

🎁 Yii Mailer Symfony Mailer Extension 3.0.1

• Добавлена поддержка symfony/mailer и symfony/mime версии ^7.0.
👍8👾1
#yiisoftView #МажорныйРелиз #Релиз

🎁 Yii View 9.0

• Добавлены методы для получения локали: View::getLocale() и WebView::getLocale().

• Добавлен иммутабельный метод ViewInterface::withTheme().

• Добавлены корректные типы в сигнатуре метода CachedContent::cache().

• Параметры $basePath и $eventDispatcher сделаны опциональными в конструкторах классов View и WebView.

• Добавлена возможность указать fallback-расширения для файлов шаблонов.

• Расширены возможности конфигурации: теперь через параметры можно задать рендерреры и расширение файла по умолчанию.

• Методы ViewInterface::withDefaultExtension() и ViewInterface::getDefaultExtension() помечены устаревшими в пользу withFallbackExtension() и getFallbackExtensions() соответственно.

• Исправлен сброс состояния объектов View и WebView между запросами в долгоживущих приложениях (не восстанавливались параметры по умолчанию).

• Исправлен некорректный поиск файла шаблона, содержащего в названии точку.

• Для параметра $value в методах ViewInterface::setParameter() и ViewInterface::addToParameter() указан тип mixed.
👍122🔥2👾2❤‍🔥1
#yiisoftYiiView #МинорныйРелиз #Релиз

🎁 Yii View Extension 6.1

• Добавлены layout-специфичные инъекции.

• Реализована «ленивая» загрузка инъекций.

• Добавлен коллектор информации для Yii Debug.

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

• Переработан поиск файла layout'а.
👍11❤‍🔥11👾1