#yiisoftVarDumper #МинорныйРелиз #Релиз
🎁 Yii VarDumper 1.7
• Добавлены обработчики вывода дампа. Из коробки доступны:
-
-
-
• Добавлена функция
🎁 Yii VarDumper 1.7
• Добавлены обработчики вывода дампа. Из коробки доступны:
-
EchoHandler
— вывод с помощью echo
в стандартный поток вывода stdout
(используется по умолчанию);-
StreamHandler
— вывод с помощью json_encode
в сокеты;-
CompositeHandler
— выводы сразу в несколько обработчиков.• Добавлена функция
dump()
(алиас к существующей ранее функции d()
).🔥6
#yiisoftCacheFile #МинорныйРелиз #Релиз
🎁 Yii Cache File Handler 3.1
• В конструктор
• Метод
• Выполнен небольшой рефакторинг кода с использованием возможностей PHP 8.
🎁 Yii Cache File Handler 3.1
• В конструктор
FileCache
добавлен параметр $directoryMode
(по умолчанию, 0755
), позволяющий указать права на директорию с кэшем при её создании. • Метод
FileCache::withDirectoryMode()
помечен устаревшим.• Выполнен небольшой рефакторинг кода с использованием возможностей PHP 8.
🔥4👍1
❌ #yiisoftRequestModel
Пакет Yii Request Model закрыт.
Предыстория
В пакетах Yii Request Model и Yii Form существовал функционал для создания и наполнения объектов. Каждый из пакетов делал это по своему.
В связи с этим в рамках отдельного пакета был написан Yii Hydrator, который умеет создавать и наполнять объекты. Также гидратор поддерживает настраиваемое приведение типов, PHP-атрибуты и разрешение зависимостей.
Дополнительно в отдельном пакете Yii Validating Hydrator создан валидирующий гидратор. По факту это декоратор над обычным гидратором, который выполняет валидацию после создания и наполнения объекта.
И, наконец, написан пакет Yii Input HTTP, который предоставляет дополнения к Yii Hydrator и Yii Middleware Dispatcher:
• модель запроса;
• атрибуты для гидратора, позволяющие получать данные из объекта запроса (
• возможность использовать атрибуты гидратора для наполнения параметров в экшенах.
Таким образом функционал пакета Yii Request Model распределился по новым пакетам. А также мы получили PHP-атрибуты (
• в параметрах экшена;
• внутри любого объекта при наполнении гидратором, в том числе и в моделях запроса или формы.
Пакет Yii Request Model закрыт.
Предыстория
В пакетах Yii Request Model и Yii Form существовал функционал для создания и наполнения объектов. Каждый из пакетов делал это по своему.
В связи с этим в рамках отдельного пакета был написан Yii Hydrator, который умеет создавать и наполнять объекты. Также гидратор поддерживает настраиваемое приведение типов, PHP-атрибуты и разрешение зависимостей.
Дополнительно в отдельном пакете Yii Validating Hydrator создан валидирующий гидратор. По факту это декоратор над обычным гидратором, который выполняет валидацию после создания и наполнения объекта.
И, наконец, написан пакет Yii Input HTTP, который предоставляет дополнения к Yii Hydrator и Yii Middleware Dispatcher:
• модель запроса;
• атрибуты для гидратора, позволяющие получать данные из объекта запроса (
Query
, Body
, UploadedFiles
и т. д.);• возможность использовать атрибуты гидратора для наполнения параметров в экшенах.
Таким образом функционал пакета Yii Request Model распределился по новым пакетам. А также мы получили PHP-атрибуты (
Query
, Body
, UploadedFiles
и т. д.), которые могут быть использованы:• в параметрах экшена;
• внутри любого объекта при наполнении гидратором, в том числе и в моделях запроса или формы.
🔥8🎉2❤1🤔1😢1🍾1
🍤 #Задачи
Потихоньку начали готовить шаблон API-приложения (yiisoft/app-api) к релизу. Конечно, предварительно нужно зарелизить ещё некоторые пакеты (отладка, гидратор и др.), но это не мешает вести работу и по шаблону.
Шаблон API-приложения, скорей всего, будет первым выпущенным шаблоном Yii3. Это будет ещё не большой релиз Yii3, но где-то рядом 😎
Есть несколько не сложных задач, с которыми вы при желании можете помочь.
⭐️ PHP Code Style Fixer в шаблоне API-приложения
yiisoft/app-api#184
Сейчас для автоматизации стиля кода используется StyleCI, но в шаблоне приложения хочется уйти от использования стороннего сервиса и заменить его на PHP CS Fixer. Нужно интегрировать фиксер в шаблон и добавить соответствующий GitHub экшн.
⭐️ Уровень Psalm в шаблоне API-приложения
yiisoft/app-api#182
Сейчас уровень 6й, нужно поднять до 1го, но это можно делать поэтапно и поднять до 5 или 4 — тоже будет полезно.
⭐️ Файл плана слияния конфигураций (Merge plan file)
yiisoft/config#121
В документации Yii Config нужно добавить несколько вещей. Первое, информацию о том, что файл плана слияния обновляется, в том числе, и при выполнении команды
Потихоньку начали готовить шаблон API-приложения (yiisoft/app-api) к релизу. Конечно, предварительно нужно зарелизить ещё некоторые пакеты (отладка, гидратор и др.), но это не мешает вести работу и по шаблону.
Шаблон API-приложения, скорей всего, будет первым выпущенным шаблоном Yii3. Это будет ещё не большой релиз Yii3, но где-то рядом 😎
Есть несколько не сложных задач, с которыми вы при желании можете помочь.
yiisoft/app-api#184
Сейчас для автоматизации стиля кода используется StyleCI, но в шаблоне приложения хочется уйти от использования стороннего сервиса и заменить его на PHP CS Fixer. Нужно интегрировать фиксер в шаблон и добавить соответствующий GitHub экшн.
yiisoft/app-api#182
Сейчас уровень 6й, нужно поднять до 1го, но это можно делать поэтапно и поднять до 5 или 4 — тоже будет полезно.
yiisoft/config#121
В документации Yii Config нужно добавить несколько вещей. Первое, информацию о том, что файл плана слияния обновляется, в том числе, и при выполнении команды
composer install
. Второе, предупреждение о том, что файл плана слияния должен быть добавлен в .gitignore
.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍2
#yiisoftRouterComposerAttributeCollector
✨ Yii Router Composer Attribute Collector
Сделали репозиторий под новый пакет, который реализует сборку роутов из классов, размеченных с помощью PHP-атрибутов. Сборка будет производится с помощью пакета olvlvl/composer-attribute-collector.
Сами атрибуты будут расположены в основном пакете Yii Router.
Собственно это всё уже почти реализовано в PR#196. Помимо атрибутов в роутере также будет добавлен интерфейс
Сделали репозиторий под новый пакет, который реализует сборку роутов из классов, размеченных с помощью PHP-атрибутов. Сборка будет производится с помощью пакета olvlvl/composer-attribute-collector.
Сами атрибуты будут расположены в основном пакете Yii Router.
Собственно это всё уже почти реализовано в PR#196. Помимо атрибутов в роутере также будет добавлен интерфейс
RoutesProviderInterface
, реализации которого будут возвращать маршруты для роутера.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
#yiisoftStrings #МинорныйРелиз #Релиз
🎁 Yii Strings 2.3
• Добавлена поддержка Stringable-объектов в методе
🎁 Yii Strings 2.3
• Добавлена поддержка Stringable-объектов в методе
NumericHelper::normalize()
.👍7
#yiisoftAuth #МинорныйРелиз #Релиз
🎁 Yii Auth 3.1
• Добавлена мемоизация экземпляров
• Для свойства
• Исправлена ошибка с обработкой путей, содержащих не только ASCII-символы, в мидлвари
• Добавлен коллектор для
• Минимальная версия PHP повышена до 8.0 и выполнен соответствующий рефакторинг.
• Обновлена версия зависимости
• Явно прописана зависимость от
🎁 Yii Auth 3.1
• Добавлена мемоизация экземпляров
WildcardPattern
в мидлвари Authentication
.• Для свойства
$pattern
в методе HttpHeader::withPattern()
прописан атрибут Language
от JetBrains, что позволяет выводить значение этого свойства в PhpStorm c подсветкой синтаксиса и возможностью протестировать регулярное выражение.• Исправлена ошибка с обработкой путей, содержащих не только ASCII-символы, в мидлвари
Authentication
.• Добавлен коллектор для
yiisoft/yii-debug
.• Минимальная версия PHP повышена до 8.0 и выполнен соответствующий рефакторинг.
• Обновлена версия зависимости
yiisoft/http
.• Явно прописана зависимость от
psr/http-factory
.🤗4🔥3👏1
#yiisoftStrings #ПатчРелиз #Релиз
🎁 Yii Strings 2.3.1
• Добавлена мемоизация в
🎁 Yii Strings 2.3.1
• Добавлена мемоизация в
WildcardPatters
, что позволило в некоторых случаях повысить скорость обработки при повторных вызовах более чем в 2 раза.😎6🔥1👏1
#yiisoftYiiEvent #МинорныйРелиз #Релиз
🎁 Yii Event 2.1
• В конфигурации пакета добавлена возможность через параметры указать имя группы конфигурации, содержащей события.
🎁 Yii Event 2.1
• В конфигурации пакета добавлена возможность через параметры указать имя группы конфигурации, содержащей события.
👍7🔥2👏1
#yiisoftYiiConsole #ПатчРелиз #Релиз
🎁 Yii Console 2.1.1
• В конфигурации параметры перенесены из группы
🎁 Yii Console 2.1.1
• В конфигурации параметры перенесены из группы
params
в params-console
.👍8
#yiisoftDb #yiisoftDbPgsql #yiisoftDbMysql #yiisoftDbSqlite #yiisoftDbMssql #yiisoftDbOracle #МинорныйРелиз #Релиз
Минорные релизы Yii DB и адаптеров к основным СУБД с исправлением ошибок и несколькими улучшениями.
🎁 Yii Database 1.2
• Реализовано корректное экранирование имён общих табличных выражений (CTE).
• Выполнен рефакторинг классов
• Исправлены ошибки экранирования, выполняемого классом
- для SQL содержащего имена таблиц с префиксами;
- в случае, когда используются различные кавычки для имён таблиц и имён столбцов;
- в случае, когда используется подзапрос с алиасом.
• В методе
- исправлено приведение типа значения, если использовались строковые ключи в массиве значений
или имена колонок были указаны со скобками (например,
- исправлена ошибка, если порядок значений ассоциативного массива не совпадал с порядком колонок;
- изменён тип параметра
• Исправлена ошибка в методе
•
• Метод
• Тип
• Debug-классы адаптированы к последним изменениям в Yii Debug.
🎁 Yii DB PostgreSQL Driver 1.2
• Выполнен рефакторинг классов
• Исправлена конвертация для типов
• Исправлено получение имени автоинкремента колонки.
• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.
🎁 Yii DB MySQL Driver 1.1
• Оптимизирован метод
• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.
🎁 Yii DB SQLite Driver 1.1
• Добавлена поддержка типа
• Исправлены ошибки с внешними ключами:
- когда таблица имеет несколько внешних ключей;
- если для внешних ключей не указаны колонки соответствия (используются первичные ключи).
• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.
🎁 Yii DB MSSQL Server Driver 1.1
• Исправлена ошибка для рекурсивных общих табличных выражений (CTE).
• Исправлен тип колонки
• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.
🎁 Yii DB Oracle Driver 1.2
• Исправлена ошибка для рекурсивных общих табличных выражений (CTE).
• Улучшено определение типа колонки.
• Выполнен рефакторинг с адаптацией к изменениям в Yii DB 1.2.
Минорные релизы 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👍2❤1
🔥 #Новости
Дмитрий Дерепко (xepozz) из core-команды Yii запустил личный телеграм-канал «Хэндлим тему», где планирует делиться полезной информацией по развитию себя, как профессионала в разработке, менеджменте и т. д.
🌿 https://t.iss.one/handle_topic
Дмитрий Дерепко (xepozz) из core-команды Yii запустил личный телеграм-канал «Хэндлим тему», где планирует делиться полезной информацией по развитию себя, как профессионала в разработке, менеджменте и т. д.
🌿 https://t.iss.one/handle_topic
🔥4👍2🥰2❤1👾1
#yiisoftWidget #МинорныйРелиз #Релиз
🎁 Yii Widget 2.1
• Добавлена поддержка тем (подробнее тут).
• Исправлено некорректное объединение аргументов конструктора из конфигураций виджета, переданных через метод
🎁 Yii Widget 2.1
• Добавлена поддержка тем (подробнее тут).
• Исправлено некорректное объединение аргументов конструктора из конфигураций виджета, переданных через метод
widget()
и заданных в конфигурации WidgetFactory
.👍7🔥1
#yiisoftConfig #ПатчРелиз #Релиз
🎁 Yii Config 1.3.1
• При обработке composer пакетов учитываются только плагины и библиотеки, всё остальное игнорируется (например, метапакеты).
• Исправлена ошибка: пустые группы конфигурации из пакетов не попадали в итоговый план слияния.
🎁 Yii Config 1.3.1
• При обработке composer пакетов учитываются только плагины и библиотеки, всё остальное игнорируется (например, метапакеты).
• Исправлена ошибка: пустые группы конфигурации из пакетов не попадали в итоговый план слияния.
👍6
#yiisoftConfig #МинорныйРелиз #Релиз
🎁 Yii Config 1.4
• Добавлена опция
🎁 Yii Config 1.4
• Добавлена опция
package-types
, позволяющая переопределить типы пакетов, которые обрабатываться composer-плагином (по умолчанию это library
и composer-plugin
). Например:"extra": {
"config-plugin-options": {
//...
"package-types": ["library", "yii2-extension"]
//...
}
}
👍4
🌿 #Полезное
Свежее интервью с Александром Макаровым в подкасте «Так не сойдёт».
Текущие проекты, мотивация, дальнейшие планы в разработке. Много про Yii.
⚡️ Смотреть тут
Свежее интервью с Александром Макаровым в подкасте «Так не сойдёт».
Текущие проекты, мотивация, дальнейшие планы в разработке. Много про Yii.
⚡️ Смотреть тут
🔥25👍4❤1🌭1
#yiisoftHtml #МинорныйРелиз #Релиз
🎁 Yii HTML 3.2
• В методах
• В метод
• Исправлена потеря имён классов в случае, когда классы передаются в виде строки.
🎁 Yii HTML 3.2
• В методах
Html::ul()
и Html::ol()
добавлен опциональный параметр $attributes
, при помощи которого можно передать массив с HTML-атрибутами соответствующего тега.• В метод
Html::addCssClass()
разрешено передавать в качестве класса значение null
, такие классы будут проигнорированы.• Исправлена потеря имён классов в случае, когда классы передаются в виде строки.
🔥6👍1🥱1
#yiisoftHtml #МинорныйРелиз #Релиз
🎁 Yii HTML 3.3
• Добавлен класс для тега
• При генерации HTML использование константы
• Метод
🎁 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, где можно будет узнать эксклюзивные подробности о процессе разработки и обсудить идеи дальнейшего развития фреймворка.
Закрытый телеграм-чат с разработчиками Yii3
Третья версия Yii находится в разработке уже довольно давно, но свет в конце тоннеля виден 😎, работа идёт.
К сожалению, финансирование — сложный момент в Yii3. Скорей всего, до релиза в этом плане существенно ничего не поменяется, но Yii3 будет сделан в любом случае.
Тем не менее, теперь есть ещё одна возможность поддержать проект финансово и приблизить релиз:
В качестве небольшого бонуса подписчики на 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. А «тяжёлые» же зависимости (валидатор, гидратор) переехали в новый пакет.
Доработали поля форм в 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
• Добавлена возможность использовать фабрику без контейнера.
🎁 Yii Factory 1.2
• Добавлена возможность использовать фабрику без контейнера.
👍5👾2