Все таблицы теперь по умолчанию имеют префикс
таблицами и более лёгкой идентификации. Подобный подход планируем внедрить и в остальные зависимые от БД пакеты.
В хранилищах добавлены названия таблиц по умолчанию для упрощения конфигурации.
Транзакции
Добавлен декоратор для
частности обновлении прав и ролей.
С полным списком изменений можно ознакомиться в CHANGELOG:
- RBAC
- RBAC PHP Storage
- RBAC Cycle Database Storage
- RBAC Yii Database Storage
- RBAC Rules Container
yii
для предотвращения потенциальных коллизий имён с пользовательскими таблицами и более лёгкой идентификации. Подобный подход планируем внедрить и в остальные зависимые от БД пакеты.
В хранилищах добавлены названия таблиц по умолчанию для упрощения конфигурации.
Транзакции
Добавлен декоратор для
Manager
, гарантирующий целостность данных при изменениях одновременно в разных хранилищах, в частности обновлении прав и ролей.
С полным списком изменений можно ознакомиться в CHANGELOG:
- RBAC
- RBAC PHP Storage
- RBAC Cycle Database Storage
- RBAC Yii Database Storage
- RBAC Rules Container
GitHub
rbac/CHANGELOG.md at master · yiisoft/rbac
Role based access control. Contribute to yiisoft/rbac development by creating an account on GitHub.
👍19🔥3
#yiisoftInputHttp #ПервыйРелиз #МажорныйРелиз #Релиз
🎁 Yii Input HTTP 1.0
Yii Input HTTP позволяет взаимодействовать с DTO с атрибутами, наподобие такого:
Возможно его автоматически зарезолвить и гидрировать, например для таких аргументов:
Базовые шаги:
- Подключить и сконфиругировать провайдер запроса.
- Сконфигурировать резолвер параметров.
- Создать DTO для входных данных запроса.
- Проставить атрибуты гидратора, предоставляемые этим пакетом, для свойств DTO.
- Добавить название класса DTO как тип аргумента метода класса, где вы хотите, чтобы он зарезолвился.
Для других доступных опций, см. руководство.
🎁 Yii Input HTTP 1.0
Yii Input HTTP позволяет взаимодействовать с DTO с атрибутами, наподобие такого:
use Yiisoft\Input\Http\AbstractInput;
use Yiisoft\Input\Http\Attribute\Data\FromBody;
#[FromBody]
final class UpdatePostInput extends AbstractInput
{
public int $id;
public string $title;
public string $description = '';
public string $content;
}
Возможно его автоматически зарезолвить и гидрировать, например для таких аргументов:
final class UpdatePostController
{
public function update(UpdatePostInput $post): ResponseInterface
{
// ...
/** @var ResponseInterface $response */
return $response;
}
}
Базовые шаги:
- Подключить и сконфиругировать провайдер запроса.
- Сконфигурировать резолвер параметров.
- Создать DTO для входных данных запроса.
- Проставить атрибуты гидратора, предоставляемые этим пакетом, для свойств DTO.
- Добавить название класса DTO как тип аргумента метода класса, где вы хотите, чтобы он зарезолвился.
Для других доступных опций, см. руководство.
🔥11
Сегодня состоялся релиз 100го пакета Yii3.
Сто стабильных пакетов!
Большой релиз Yii3 неизбежен 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43❤9👍7🤪3❤🔥2
#yiisoftYiiRunner #МинорныйРелиз #Релиз
🎁 Yii Runner 2.2
• Добавлена возможность указать путь к папкам
🎁 Yii Runner 2.2
• Добавлена возможность указать путь к папкам
vendor
и config
, а также расположение файла с планом слияния конфигурации (merge plan).👍6👾1
#yiisoftYiiRunnerConsole #МинорныйРелиз #Релиз
🎁 Yii Console Runner 2.2
• Добавлена возможность указать путь к папкам
🎁 Yii Console Runner 2.2
• Добавлена возможность указать путь к папкам
vendor
и config
, а также расположение файла с планом слияния конфигурации (merge plan).👍3👾1
#yiisoftYiiRunnerHttp #МинорныйРелиз #Релиз
🎁 Yii HTTP Runner 2.3
• Добавлена возможность указать путь к папкам
• Реализована отправка заголовков перед отправкой тела ответа, что позволяет клиенту распознать тип содержимого, если оно отправляется с задержкой, например, при использовании потоков.
• В
• Добавлена поддержка пакета
🎁 Yii HTTP Runner 2.3
• Добавлена возможность указать путь к папкам
vendor
и config
, а также расположение файла с планом слияния конфигурации (merge plan).• Реализована отправка заголовков перед отправкой тела ответа, что позволяет клиенту распознать тип содержимого, если оно отправляется с задержкой, например, при использовании потоков.
• В
SapiEmitter
, ecли содержимое для вывода меньше, чем размер буфера, то буферизированный вывод не используется, что позволяет сократить выделение памяти в таких случаях.• Добавлена поддержка пакета
psr/http-message
версии ^2.0
.👍7👾1
#yiisoftDefinitions #МинорныйРелиз #Релиз
🎁 Yii Definitions 3.3
• В определениях в формате массива добавлена возможность вызвать один и тот же метод несколько раз. Для этого в ключе после
• Исправлена фатальная ошибка, возникающая при использовании пересечений типов.
🎁 Yii Definitions 3.3
• В определениях в формате массива добавлена возможность вызвать один и тот же метод несколько раз. Для этого в ключе после
()
нужно добавить любой постфикс. Например:[
'class' => Collector::class,
'add()' => ['Alex'],
'add()-2' => ['Mike'],
]
• Исправлена фатальная ошибка, возникающая при использовании пересечений типов.
👍5🤔1🤯1👾1
#yiisoftSecurity #ПатчРелиз #Релиз
🎁 Yii Security 1.0.2
• В методе
• Явно прописаны зависимости
🎁 Yii Security 1.0.2
• В методе
Random::string()
указан более точный psalm-тип non-empty-string
.• Явно прописаны зависимости
ext-hash
и ext-openssl
.👾4👍3
#yiisoftRouterFastroute #МинорныйРелиз #Релиз
🎁 Yii Router FastRoute Adapter 3.1
• В конструктор класса
• Добавлена поддержка пакета
🎁 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
• В контекст лога добавлен тип сообщения.
• Разрешено использование метода
• Добавлен метод
• Исправлено: метод
• Исправлена ошибка, возникающая в методе
• Исправлено приведение числа к строке в методе
• Исправлена ошибка при изменении префикса в
• Уточнены psalm-типы.
• Методы помечены устаревшими:
-
-
-
-
• Параметр
• Оптимизация производительности и рефакторинг.
Подробный список изменений тут.
🎁 Yii DB PostgreSQL Driver 1.3
• Добавлена поддержка составных (structured) типов.
• Добавлена поддержка ограничений (constraints) в представлениях (table view).
• Свойство
• Исправлено: в редких кейсах при чтении индекса в индекс попадали поля, которых там быть не должно.
• Оптимизация производительности и рефакторинг.
🎁 Yii DB MySQL Driver 1.2
• Свойство
• Исправлена ошибка при использовании метода
• Оптимизация производительности и рефакторинг.
🎁 Yii DB SQLite Driver 1.2
• Свойство
• Оптимизация производительности и рефакторинг.
🎁 Yii DB MSSQL Server Driver 1.2
• Свойство
• Исправлены ошибки в методах
• Оптимизация производительности и рефакторинг.
🎁 Yii DB Oracle Driver 1.3
• Разрешено использование метода
• Свойство
• Исправлена ошибка, возникающая при использовании
• Исправлена ошибка при использовании метода
• Исправлено: метод
• Оптимизация производительности и рефакторинг.
Минорные релизы 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.
Покрытие тестами, мутационный индекс и уровень статического анализа подтянули до максимума.
🎁 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.
Покрытие тестами, мутационный индекс и уровень статического анализа подтянули до максимума.
GitHub
GitHub - yiisoft/yii-cycle: Cycle ORM support for Yii
Cycle ORM support for Yii. Contribute to yiisoft/yii-cycle development by creating an account on GitHub.
👍10🔥7❤4
#yiisoftQueueDb
✨ Yii Queue DB
Новый пакет, в котором планируется реализовать Yii Queue адаптер для работы очередей через базу данных c помощью Yii DB.
Новый пакет, в котором планируется реализовать Yii Queue адаптер для работы очередей через базу данных c помощью Yii DB.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👾1
#yiisoftHydrator #МинорныйРелиз #Релиз
🎁 Yii Hydrator 1.2
• Добавлен PHP атрибут
• Добавлены PHP атрибуты для удаления пробелов (или других символов) в начале и/или конце строки:
-
-
-
• Минимальная версия PHP повышена до 8.1.
🎁 Yii Hydrator 1.2
• Добавлен PHP атрибут
ToDateTime
для приведения значения к объекту DateTimeImmutable
или DateTime
.• Добавлены PHP атрибуты для удаления пробелов (или других символов) в начале и/или конце строки:
-
Trim
-
LeftTrim
-
RightTrim
• Минимальная версия PHP повышена до 8.1.
👍14👾2
#yiisoftArrays #МинорныйРелиз #Релиз
🎁 Yii Arrays 3.1
• Добавлен метод
• Добавлен метод
• В методе
• Выполнен небольшой рефакторинг в
🎁 Yii Arrays 3.1
• Добавлен метод
ArrayHelper::renameKey()
для переименования ключа в массиве.• Добавлен метод
ArrayHelper::parametrizedMerge()
, позволяющий рекурсивно слить два или более массивов с заданным уровнем вложенности.• В методе
ArrayHelper::getObjectVars()
уточнён тип результата: array|null
→ array
.• Выполнен небольшой рефакторинг в
ArrayableTrait
.🔥8👍1👾1
#yiisoftValidator #МинорныйРелиз #Релиз
🎁 Yii Validator 1.3
• Добавлено правило
• Добавлены правила
• В классе
• Уточнены psalm-типы в классе
🎁 Yii Validator 1.3
• Добавлено правило
Image
для валидации размеров изображения.• Добавлены правила
Date
, DateTime
и Time
для валидации даты/времени.• В классе
Result
добавлены методы addErrorWithFormatOnly()
и addErrorWithoutPostProcessing()
.• Уточнены psalm-типы в классе
Result
.👍10👾1
#yiisoftCookies #ПатчРелиз #Релиз
🎁 Yii Cookies 1.2.2
• Добавлена поддержка пакета
🎁 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, где можно будет узнать эксклюзивные подробности о процессе разработки и обсудить идеи дальнейшего развития фреймворка.
Одним из источников пополнения фонда Yii является сервис Tidelift. Недавно руководство сервиса решило существенно сократить выплаты разработчикам PHP-пакетов, что по итогу привело к снижению на ~35% поступлений в наш фонд.
Из фонда Yii финансируется вся разработка фреймворка. Несмотря на уменьшение поступлений, работа будет продолжена, но поддержка, конечно, не будет лишней.
Вы можете поддержать нас финансово на следующих площадках:
Возможно, ваша компания использует фреймворк Yii и неё появится желание в какой-то мере проспонсировать разработку (хорошая идея — обсудить это с руководством 😎). В свою очередь, мы можем рассказать о компании-спонсоре на ресурсах Yii, что положительно скажется на репутации в среде разработчиков.
И ещё напомню, что подписчики на sponsr и boosty получают доступ к закрытому чату с разработчиками Yii3 в Telegram, где можно будет узнать эксклюзивные подробности о процессе разработки и обсудить идеи дальнейшего развития фреймворка.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🤔2👍1👾1
#yiisoftRunnerRoadrunner #ПатчРелиз #Релиз
🎁 Yii RoadRunner Runner 3.0.1
• Разрешили использовать RoadRunner версии 2024 и выше.
🎁 Yii RoadRunner Runner 3.0.1
• Разрешили использовать RoadRunner версии 2024 и выше.
GitHub
GitHub - yiisoft/yii-runner-roadrunner: Web application runner for RoadRunner
Web application runner for RoadRunner. Contribute to yiisoft/yii-runner-roadrunner development by creating an account on GitHub.
🔥13
#yiisoftCacheApcu #МинорныйРелиз #Релиз
🎁 Yii Cache Library - APCu Handler 1.1
• Подняты минимальные версии зависимостей: psr/simple-cache - до ^2.0|^3.0, а PHP - до ^8.0.
🎁 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
• Добавлена поддержка пакета
• Минимальная версия PHP поднята до 8.0.
🎁 Yii Session 2.1
• Добавлена поддержка пакета
psr/http-message
версии ^2.0
.• Минимальная версия PHP поднята до 8.0.
👍2👾2
#yiisoftAuth #ПатчРелиз #Релиз
🎁 Yii Auth 3.1.1
• Добавлена поддержка пакета
🎁 Yii Auth 3.1.1
• Добавлена поддержка пакета
psr/http-message
версии ^2.0
.👍5👾3