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

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

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

Поддержать разработчиков:
https://opencollective.com/yiisoft
Download Telegram
#yiisoftYiiConsole #ПатчРелиз #Релиз

🎁 Yii Console 2.1.1

• В конфигурации параметры перенесены из группы params в params-console.
👍8
#yiisoftDb #yiisoftDbPgsql #yiisoftDbMysql #yiisoftDbSqlite #yiisoftDbMssql #yiisoftDbOracle #МинорныйРелиз #Релиз

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


🎁 Yii Database 1.2

• Реализовано корректное экранирование имён общих табличных выражений (CTE).

• Выполнен рефакторинг классов Quoter и AbstractDMLQueryBuilder.

• Исправлены ошибки экранирования, выполняемого классом Quoter:

- для SQL содержащего имена таблиц с префиксами;

- в случае, когда используются различные кавычки для имён таблиц и имён столбцов;

- в случае, когда используется подзапрос с алиасом.

• В методе QueryBuilderInterface::batchInsert():

- исправлено приведение типа значения, если использовались строковые ключи в массиве значений
или имена колонок были указаны со скобками (например, {{%type}}.[[int_col]])

- исправлена ошибка, если порядок значений ассоциативного массива не совпадал с порядком колонок;

- изменён тип параметра $rows с iterable|Generator на iterable.

• Исправлена ошибка в методе QueryBuilderInterface::upsert(), возникающая в случае, если значение уникального столбца передано не первым значением.

protected-методы Command::getQueryBuilder() и Command::internalExecute() из адаптеров к конкретным СУБД были перенесены в AbstractPdoCommand.

• Метод TableSchemaInterface::compositeForeignKey() помечен устаревшим.

• Тип SchemaInterface::JSONB помечен устаревшим, вместо него предлагается использовать тип SchemaInterface::JSON.

• Debug-классы адаптированы к последним изменениям в Yii Debug.


🎁
Yii DB PostgreSQL Driver 1.2

• Выполнен рефакторинг классов JsonExpressionBuilder, ArrayExpressionBuilder и ColumnSchema.

• Исправлена конвертация для типов bit и varbit из строки для передачи в БД.

• Исправлено получение имени автоинкремента колонки.

• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.


🎁 Yii DB MySQL Driver 1.1

• Оптимизирован метод QueryBuilderInterface::insert() для пустых значений, когда вставляются значения по умолчанию.

• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.


🎁 Yii DB SQLite Driver 1.1

• Добавлена поддержка типа json.

• Исправлены ошибки с внешними ключами:

- когда таблица имеет несколько внешних ключей;

- если для внешних ключей не указаны колонки соответствия (используются первичные ключи).

• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.


🎁 Yii DB MSSQL Server Driver 1.1

• Исправлена ошибка для рекурсивных общих табличных выражений (CTE).

• Исправлен тип колонки boolean с типа БД tinyint на более подходящий тип bit.

• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.


🎁 Yii DB Oracle Driver 1.2

• Исправлена ошибка для рекурсивных общих табличных выражений (CTE).

• Улучшено определение типа колонки.

• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.
🎉15👍21
🔥 #Новости

Дмитрий Дерепко (xepozz) из core-команды Yii запустил личный телеграм-канал «Хэндлим тему», где планирует делиться полезной информацией по развитию себя, как профессионала в разработке, менеджменте и т. д.

🌿 https://t.iss.one/handle_topic
🔥4👍2🥰21👾1
#yiisoftWidget #МинорныйРелиз #Релиз

🎁 Yii Widget 2.1

• Добавлена поддержка тем (подробнее тут).

• Исправлено некорректное объединение аргументов конструктора из конфигураций виджета, переданных через метод widget() и заданных в конфигурации WidgetFactory.
👍7🔥1
#yiisoftConfig #ПатчРелиз #Релиз

🎁 Yii Config 1.3.1

• При обработке composer пакетов учитываются только плагины и библиотеки, всё остальное игнорируется (например, метапакеты).

• Исправлена ошибка: пустые группы конфигурации из пакетов не попадали в итоговый план слияния.
👍6
#yiisoftConfig #МинорныйРелиз #Релиз

🎁 Yii Config 1.4

• Добавлена опция package-types, позволяющая переопределить типы пакетов, которые обрабатываться composer-плагином (по умолчанию это library и composer-plugin). Например:

"extra": {
"config-plugin-options": {
//...
"package-types": ["library", "yii2-extension"]
//...
}
}
👍4
🌿 #Полезное

Свежее интервью с Александром Макаровым в подкасте «Так не сойдёт».

Текущие проекты, мотивация, дальнейшие планы в разработке. Много про Yii.

⚡️ Смотреть тут
🔥25👍41🌭1
#yiisoftHtml #МинорныйРелиз #Релиз

🎁 Yii HTML 3.2

• В методах Html::ul() и Html::ol() добавлен опциональный параметр $attributes, при помощи которого можно передать массив с HTML-атрибутами соответствующего тега.

• В метод Html::addCssClass() разрешено передавать в качестве класса значение null, такие классы будут проигнорированы.

• Исправлена потеря имён классов в случае, когда классы передаются в виде строки.
🔥6👍1🥱1
#yiisoftHtml #МинорныйРелиз #Релиз

🎁 Yii HTML 3.3

• Добавлен класс для тега <html> и соответствующий метод Html::html().

• При генерации HTML использование константы PHP_EOL заменено на строку "\n".

• Метод Html::addCssClass() теперь не добавляет атрибут class, если передан пустой массив классов или массив, содержащий только значения null.
👾4👍3
🔥 #Новости

Закрытый телеграм-чат с разработчиками Yii3

Третья версия Yii находится в разработке уже довольно давно, но свет в конце тоннеля виден 😎, работа идёт.

К сожалению, финансирование — сложный момент в Yii3. Скорей всего, до релиза в этом плане существенно ничего не поменяется, но Yii3 будет сделан в любом случае.

Тем не менее, теперь есть ещё одна возможность поддержать проект финансово и приблизить релиз:

⚡️ Yii3 на sponsr

В качестве небольшого бонуса подписчики на sponsr получают доступ к закрытому чату с разработчиками Yii3 в Telegram, где можно будет узнать эксклюзивные подробности о процессе разработки и обсудить идеи дальнейшего развития фреймворка.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍6👀3
#yiisoftFormModel

Yii Form Model

Доработали поля форм в Yii Form таким образом, чтобы их можно было использовать независимо от модели формы. Это позволило выделить модель формы в отдельный пакет.

Теперь в Yii Form остались только виджеты полей форм, которые зависят только от трёх пакетов: Yii Friendly Exception, Yii HTML и Yii Widget. А «тяжёлые» же зависимости (валидатор, гидратор) переехали в новый пакет.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👾2
#yiisoftFactory #МинорныйРелиз #Релиз

🎁 Yii Factory 1.2

• Добавлена возможность использовать фабрику без контейнера.
👍5👾2
#yiisoftUser #МинорныйРелиз #Релиз

🎁 Yii User 2.1

• В методе CookieLogin::addCookie() добавлен опциональный параметр $duration, позволяющий указать срок жизни устанавливаемой куки для автологина.

• Добавлена возможность устанавливать куку для автологина только на время сессии.

• Улучшены сообщения, отправляемые в лог.

• Минимальная версия PHP поднята до 8.0 и выполнен соответствующий рефакторинг.

• Требуемая версия зависимости yiisoft/access изменена на ^2.0.
👍9😢1👾1
#yiisoftYiiRunner #МинорныйРелиз #Релиз

🎁 Yii Runner 2.1

• Добавлена возможность указать дополнительные модификаторы конфигурации для приложения.
👍8👾2
🔥 #Новости

Закрытый телеграм-чат с разработчиками Yii3 для подписчиков на Boosty

Ранее мы сделали доступ в закрытый чат для подписчиков на sponsr. Теперь закрытый чат также доступен подписчикам на boosty. Это один и тот же чат в телеграм, то есть все попадают в одно место 🙂

Чат доступен всем спонсорам, у которых есть подписка уровня 500 рублей в месяц или более.

⚡️ Инструкция для boosty-подписчиков
Please open Telegram to view this post
VIEW IN TELEGRAM
👾7🔥5👍21
#yiisoftInjector #МинорныйРелиз #Релиз

🎁 Yii Injector 1.2

• Добавлено кэширование рефлексий (опционально, по умолчанию выключено).

• Зависимость от контейнера сделана опциональной. Теперь можно использовать инжектор без контейнера.
👍8🎄3👾1
#yiisoftDbMigration #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii DB Migration 1.0

Первый стабильный релиз миграций на базе Yii DB.

Из коробки поддерживаются следующие СУБД:

• MSSQL 2017, 2019, 2022,
• MySQL 5.7–8.0,
• MariaDB 10.4–10.9,
• Oracle 12c–21c,
• PostgreSQL 9.6–15,
• SQLite 3.3 и выше.

Пакет предоставляет возможность работы с миграциями как через консоль Yii или Symfony, так и через отдельную независимую утилиту.

Сами миграции представляют собой PHP-классы с удобным билдером. Например:

final class M231219204516Test implements RevertibleMigrationInterface
{
public function up(MigrationBuilder $b): void
{
$b->createTable('test', [
'id' => $b->primaryKey(),
'name' => $b->string(255)->notNull(),
'email' => $b->string(255)->notNull(),
'status' => $b->integer()->notNull()->defaultValue(10),
'created_at' => $b->dateTime()->notNull(),
'updated_at' => $b->dateTime()->notNull(),
]);
}

public function down(MigrationBuilder $b): void
{
$b->dropTable('test');
}
}
🔥19👍3❤‍🔥2👏1👾1
#yiisoftStrings #МинорныйРелиз #Релиз

🎁 Yii Strings 2.4

• В StringHelper добавлены новые методы findBetween(), findBetweenFirst() и findBetweenLast().

• Улучшена производительность метода StringHelper::parsePath().
🔥10🎉2👾2
#yiisoftYiiDbMigration #МинорныйРелиз #Релиз

🎁 Yii DB Migration 1.1

• В билдере добавлены методы для создания UUID-колонок: uuid(), uuidPrimaryKey() и uuidPrimaryKeySequenced().
🔥6👍4👾2
#yiisoftRouterFastroute #ПатчРелиз #Релиз

🎁 Yii Router FastRoute Adapter 3.0.1

• Исправлено: при генерации URL неиспользуемые в роуте аргументы добавлялись в query-параметры.

• Исправлено: при генерации URL в случае, когда нет query-параметров, в конце добавлялся символ ?.
👍11🔥5👾2
#yiisoftConfig #МинорныйРелиз #Релиз

🎁 Yii Config 1.5

• Для модификатора RecursiveMerge добавлена возможность указать глубину рекурсии.

• Исправлено некорректное исключение "Duplicate key…", возникающее в некоторых случаях при использовании референсов.

• Модификаторы для рекурсивного и реверсивного слияний теперь применяются для референсов.

• Удалён неиспользуемый код в классе PackagesListBuilder.
👍12👾5