#yiisoftProxy #ПатчРелиз #Релиз
🎁 Yii Proxy 1.0.4
Во вчерашнем релизе ошибочно финализировали конструктор в
• Удалена финализация конструктора в классе
🎁 Yii Proxy 1.0.4
Во вчерашнем релизе ошибочно финализировали конструктор в
ObjectProxy
. Переопределение конструктора используется в Yii Debug. Исправляемся.• Удалена финализация конструктора в классе
ObjectProxy
(PR).🔥3
⚡️ #yiisoftForm #yiisoftDemoApi
В модели формы Yii Form добавили возможность использовать атрибуты валидатора для указания правил валидации (PR).
Демо API-приложения адаптировали к этим изменениям (PR).
В модели формы Yii Form добавили возможность использовать атрибуты валидатора для указания правил валидации (PR).
Демо API-приложения адаптировали к этим изменениям (PR).
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ #yiisoftYiiDebugViewer
Доработали внешний вид тулбара в Yii Debug Viewer (PR):
- добавили изменение фона при наведении на табы;
- сделали соответствующий курсор в зоне изменения размера тулбара;
- убрали возможность выделения текста в тулбаре.
Доработали внешний вид тулбара в Yii Debug Viewer (PR):
- добавили изменение фона при наведении на табы;
- сделали соответствующий курсор в зоне изменения размера тулбара;
- убрали возможность выделения текста в тулбаре.
🔥11👍1🤔1
🔥2
⚡️ #yiisoftYiiDevTool
Доработали вывод результата выполнения команд
Доработали вывод результата выполнения команд
enable
и disable
в Yii Development Tool. Теперь пакеты, которые уже были включены/отключены ранее выводятся отдельным списком (PR).👍4
👍2
⚡️ #yiisoftDb #yiisoftDbMssql #yiisoftDbMysql #yiisoftDbOracle #yiisoftDbPgsql #yiisoftDbSqlite
В Yii DB добавлены методы (PR):
-
-
-
-
Соответствующие изменения внесены в пакеты + добавлены тесты:
- Yii DB MSSQL Server Extension (PR),
- Yii DB MySQL Extension (PR),
- Yii DB Oracle Extension (PR),
- Yii DB PostgreSQL Extension (PR),
- Yii DB SQLite Extension (PR).
В Yii DB добавлены методы (PR):
-
QuoterInterface::getTableNameParts()
,-
TableSchemaInterface::getServerName()
,-
TableSchemaInterface::serverName()
,-
Schema::getRawTableName()
.Соответствующие изменения внесены в пакеты + добавлены тесты:
- Yii DB MSSQL Server Extension (PR),
- Yii DB MySQL Extension (PR),
- Yii DB Oracle Extension (PR),
- Yii DB PostgreSQL Extension (PR),
- Yii DB SQLite Extension (PR).
🔥8
⚡️ #yiisoftYiiQueue
В пакете Yii Queue избавились от сомнительных поведений (behaviors) и заменили их мидлварями (PR).
Как было?
Если была нужда как-то иначе сконфигурировать отправку сообщения в очередь, создавалось поведение. Например, поведение отложенного сообщения. Сходу было непонятно, чем эти поведения являются и как их использовать, а также они давали меньше гибкости в настройке, чем хотелось бы.
Как стало?
Поведений больше нет, теперь есть мидлвари. Да, прямо как в PSR-15 для обработки HTTP-запросов, но работает не с объектом
Стека мидлварей у нас два:
- на отправку сообщения в очередь;
- на обработку сообщения из очереди.
Их можно использовать отдельно или комбинировать на ваш выбор. Можно, например, вручную добавлять ID отправляемому сообщению, если используете стандарт amqp, в котором ID нет. Можно прокидывать дополнительную метаинформацию на
Если вы раньше не использовали поведения, то можно спокойно обновляться, для вас ничего не изменится.
По использованию мидлварей информация есть в readme.
Также это изменение открывает возможность реализации стратегий обработки ошибок, которые могут быть сделаны как мидлварь на
В пакете Yii Queue избавились от сомнительных поведений (behaviors) и заменили их мидлварями (PR).
Как было?
Если была нужда как-то иначе сконфигурировать отправку сообщения в очередь, создавалось поведение. Например, поведение отложенного сообщения. Сходу было непонятно, чем эти поведения являются и как их использовать, а также они давали меньше гибкости в настройке, чем хотелось бы.
Как стало?
Поведений больше нет, теперь есть мидлвари. Да, прямо как в PSR-15 для обработки HTTP-запросов, но работает не с объектом
Request
, а с сообщением для очереди.Стека мидлварей у нас два:
- на отправку сообщения в очередь;
- на обработку сообщения из очереди.
Их можно использовать отдельно или комбинировать на ваш выбор. Можно, например, вручную добавлять ID отправляемому сообщению, если используете стандарт amqp, в котором ID нет. Можно прокидывать дополнительную метаинформацию на
push
, а на consume
— вычитывать и использовать её. Или добавить метрики в мониторинг для Prometheus. И так далее.Если вы раньше не использовали поведения, то можно спокойно обновляться, для вас ничего не изменится.
По использованию мидлварей информация есть в readme.
Также это изменение открывает возможность реализации стратегий обработки ошибок, которые могут быть сделаны как мидлварь на
consume
. Эта работа была начата раньше на поведениях.GitHub
GitHub - yiisoft/queue: Queue extension for Yii 3.0
Queue extension for Yii 3.0. Contribute to yiisoft/queue development by creating an account on GitHub.
🔥9👍2
⚡️ #yiisoftRequestModel
В Yii Request Model немного порефакторили существующие тесты и добавили новых (PR).
В Yii Request Model немного порефакторили существующие тесты и добавили новых (PR).
🔥2
🔥3😁1🎉1
#yiisoftStrings #МинорныйРелиз #Релиз
🎁 Yii Strings 2.1.0
• Добавлен метод
• Добавлен метод
🎁 Yii Strings 2.1.0
• Добавлен метод
StringHelper::parsePath()
для парсинга путей вида path.to.my.dream
с поддержкой произвольных разделителей и символа экранирования (PR).• Добавлен метод
Inflector::toSnakeCase()
, конвертирующий строку в "snake_case".🔥2
#yiisoftArrays #МинорныйРелиз #Релиз
🎁 Yii Arrays 2.1.0
• Для парсинга строковых путей в таких методах, как
🎁 Yii Arrays 2.1.0
• Для парсинга строковых путей в таких методах, как
ArrayHelper::getValueByPath()
, ArrayHelper::pathExists()
и так далее, теперь используется метод StringHelper::parsePath()
из Yii Strings, что добавило возможность экранирования символа разделителя с помощью обратного слэша (PR, PR).🔥3
⚡️ #yiisoftValidator
В Yii Validator добавили возможность упрощённой записи комбинации правил
Подробнее в readme.
В Yii Validator добавили возможность упрощённой записи комбинации правил
Nested
и Each
(PR). Например:$rule = new Nested([
'charts.*.points.*.coordinates.x' => [new Number(min: -10, max: 10)],
'charts.*.points.*.coordinates.y' => [new Number(min: -10, max: 10)],
'charts.*.points.*.rgb' => [
new Count(exactly: 3);
new Number(min: 0, max: 255),
]),
]);
Подробнее в readme.
🔥2
⚡️ #yiisoftValidator
В Yii Validator доработали логику валидации данных (PR).
• Правила валидации, передаваемые напрямую в метод
•
•
Теперь в конструктор передаётся объект и опционально второй параметр, который указывает параметры какой области видимости обрабатывать в объекте (по умолчанию,
Для объектов, реализующих
Для объектов, реализующих
• В зависимости от данных передаваемых в метод
- объекты, реализаующие
- прочие объекты — оборачиваются в
- массивы — оборачиваются в
- прочие данные — оборачиваются в
Таким образом, теперь для валидации объекта, в котором правила прописаны атрибутами к соответствующим свойствам, достаточно лишь передать его в метод
В Yii Validator доработали логику валидации данных (PR).
• Правила валидации, передаваемые напрямую в метод
Validator::validate()
всегда имеют приоритет над правилами, содержащимися в проверяемом объекте.•
ScalarDataSet
переименован в MixedDataSet
. Метод MixedDataSet::getAttributeValue()
теперь всегда возвращает null
.•
AttributeDataSet
переименован в ObjectDataSet
и существенно переработан.Теперь в конструктор передаётся объект и опционально второй параметр, который указывает параметры какой области видимости обрабатывать в объекте (по умолчанию,
ReflectionProperty::IS_PRIVATE|ReflectionProperty::IS_PROTECTED|ReflectionProperty::IS_PUBLIC
). То есть появилась возможность обрабатывать не только публичные, но и защищённые, и приватные свойства объекта.Для объектов, реализующих
DataSetInterface
, свойства обрабатываться не будут, вместо этого будут вызываться соответствующие методы интерфейса.Для объектов, реализующих
RulesProviderInterface
, правила из атрибутов использоваться не будут, вместо этого будет вызываться метод getRules()
.• В зависимости от данных передаваемых в метод
validate()
они оборачиваются в соответствующий DataSet-класс:- объекты, реализаующие
DataSetInterface
, — не оборачиваются;- прочие объекты — оборачиваются в
ObjectDataSet
;- массивы — оборачиваются в
ArrayDataSet
;- прочие данные — оборачиваются в
MixedDataSet
.Таким образом, теперь для валидации объекта, в котором правила прописаны атрибутами к соответствующим свойствам, достаточно лишь передать его в метод
validate
:$result = $validator->validate($myObject);
🔥4
⚡️ #yiisoftValidator
В Yii Validator в сообщениях для правил
В Yii Validator в сообщениях для правил
IsTrue
и Boolean
для булевых значений теперь выводится true
и false
вместо 1
и 0
соответственно (PR).🔥2
⚡️ #yiisoftValidator
В Yii Validator добавили возможность с помощью функции обратного вызова определять, какое значение считать пустым (PR).
Функцию можно задать с помощью параметра
Из коробки доступно три класса, реализующих метод
•
•
•
В Yii Validator добавили возможность с помощью функции обратного вызова определять, какое значение считать пустым (PR).
Функцию можно задать с помощью параметра
skipOnEmptyCallback
как в конструкторе валидатора, так и в конкретном правиле.Из коробки доступно три класса, реализующих метод
__invoke
, то есть их можно использовать как функции обратного вызова:•
SkipOnEmpty
— пустыми считаются значения null
, []
и пустая строка;•
SkipOnNull
— пустыми считаются только значения null
;•
SkipNone
— никакое значение не считается пустым.🔥5
⚡️ #yiisoftProfiler
В Yii Profiler добавили интерфейс
В Yii Profiler добавили интерфейс
ProfilerAwareInterface
и трейт ProfilerAwareTrait
, позволяющий его реализовать (PR).⚡️ #yiisoftForm
Yii Form адаптировали к последним изменениям в валидаторе, сейчас код для сбора правил из атрибутов в модели формы происходит в самой форме (PR).
Yii Form адаптировали к последним изменениям в валидаторе, сейчас код для сбора правил из атрибутов в модели формы происходит в самой форме (PR).
🔥3
🔥1
⚡️ #yiisoftProfiler
В Yii Profiler улучшили документацию в части установки пакета (PR) и добавили недостающие строки в лог изменений (PR).
В Yii Profiler улучшили документацию в части установки пакета (PR) и добавили недостающие строки в лог изменений (PR).
👍3