⚡️ #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
#yiisoftProfiler #ПатчРелиз #Релиз
🎁 Yii Profiler 1.0.5
• Добавлен интерфейс
• Исправлено некорректное использование переменной
🎁 Yii Profiler 1.0.5
• Добавлен интерфейс
ProfilerAwareInterface
и трейт ProfilerAwareTrait
, позволяющий его реализовать.• Исправлено некорректное использование переменной
$params
в конфигурации пакета.🔥1
🔥1
⚡️ #yiisoftProfiler
Немного подчистили код в Yii Profiler и подняли минимальные версии зависимостей (PR):
- PHP до
-
-
Немного подчистили код в Yii Profiler и подняли минимальные версии зависимостей (PR):
- PHP до
^8.0
,-
psr/log
до ^2.0|^3.0
,-
yiisoft/files
до ^2.0
.🔥1
⚡️ #yiisoftValidator
В Yii Validator удалили атрибут
В
- массив (или iterable-объект) с правилами;
- имя класса, из атрибутов и свойств которого автоматически будет сформирован массив с правилами;
- объект, реализующий
Если в
В Yii Validator удалили атрибут
Embedded
, теперь его функцию выполняет правило Nested
(PR).В
Nested
можно передать в качестве правил:- массив (или iterable-объект) с правилами;
- имя класса, из атрибутов и свойств которого автоматически будет сформирован массив с правилами;
- объект, реализующий
RulesProviderInterface
.Если в
Nested
правила не передавать, то они будут автоматически получены из атрибутов свойств валидируемого объекта.🔥4
⚡️ #yiisoftValidator
Несколько улучшений в Yii Validator.
• Для правила
• Исправили проблему с некорректным путём ошибки, которая возникала в некоторых случаях при использовании правила
Несколько улучшений в Yii Validator.
• Для правила
Nested
разрешили использовать пустой массив при указании правил (PR).• Исправили проблему с некорректным путём ошибки, которая возникала в некоторых случаях при использовании правила
Nested
внутри Each
(PR).🔥3
⚡️ #yiisoftRbacCycleDb
Несколько изменений в пакете Yii RBAC Cycle Database Storage.
• Актуализировали конфигурацию scrutinizer, а в GitHub Actions перешли на использование Yii GitHub Actions (PR).
• Адаптировали пакет к последней версии Yii RBAC (PR).
Несколько изменений в пакете Yii RBAC Cycle Database Storage.
• Актуализировали конфигурацию scrutinizer, а в GitHub Actions перешли на использование Yii GitHub Actions (PR).
• Адаптировали пакет к последней версии Yii RBAC (PR).
🔥3
⚡️ #yiisoftValidator
В Yii Validator внесли несколько улучшений, касающихся пропуска правил для пустых значений (PR).
• Объединили свойства
• Выделили в отдельный интерфейс
• Поправили поведение валидатора: теперь
В Yii Validator внесли несколько улучшений, касающихся пропуска правил для пустых значений (PR).
• Объединили свойства
skipOnEmpty
и skipOnEmptyCallback
.• Выделили в отдельный интерфейс
SkipOnEmptyInterface
и сделали соответствующий трейт.• Поправили поведение валидатора: теперь
skipOnEmpty
, указанный в валидаторе, устанавливается только для тех правил, в которых он не установлен явно.🔥4
⚡️ #yiisoftValidator
В Yii Validator в CI вернули запуск тестов с PHP без дополнительных расширений, который случайно удалили в одном из предыдущих PR (PR).
В Yii Validator в CI вернули запуск тестов с PHP без дополнительных расширений, который случайно удалили в одном из предыдущих PR (PR).
#yiisoftProfiler #МажорныйРелиз #Релиз
🎁 Yii Profiler 2.0.0
• Минимальная версия PHP увеличена до 8.0, выполнен рефакторинг с использованием нового синтаксиса.
• Подняты минимальные версии зависимостей:
-
-
🎁 Yii Profiler 2.0.0
• Минимальная версия PHP увеличена до 8.0, выполнен рефакторинг с использованием нового синтаксиса.
• Подняты минимальные версии зависимостей:
-
psr/log
до ^2.0|^3.0
;-
yiisoft/files
до ^2.0
.⚡️ #yiisoftDb #yiisoftDbMysql #yiisoftDbMssql #yiisoftDbPgsql #yiisoftDbOracle #yiisoftDbSqlite
В Yii DB сделали временное решение с экранированием: сейчас при возможности используется экранирование через PDO-драйвер (PR, PR). В дальнейшем это поведение будет изменено.
Соответствующие изменения внесены в DB-адаптеры:
- Yii DB MySQL Extension (PR, PR, PR),
- Yii DB MSSQL Server Extension (PR, PR),
- Yii DB PostgreSQL Extension (PR, PR, PR),
- Yii DB Oracle Extension (PR, PR, PR),
- Yii DB SQLite Extension (PR, PR).
В Yii DB сделали временное решение с экранированием: сейчас при возможности используется экранирование через PDO-драйвер (PR, PR). В дальнейшем это поведение будет изменено.
Соответствующие изменения внесены в DB-адаптеры:
- Yii DB MySQL Extension (PR, PR, PR),
- Yii DB MSSQL Server Extension (PR, PR),
- Yii DB PostgreSQL Extension (PR, PR, PR),
- Yii DB Oracle Extension (PR, PR, PR),
- Yii DB SQLite Extension (PR, PR).
🤔2👎1
⚡️ #yiisoftRbacCycleDb
В Yii RBAC Cycle Database Storage добавили тестов и исправили несколько ошибок:
- метод
- метод
- при получении элементов RBAC при отсутствии правила вместо null устанавливалась пустая строка в качестве имени правила (PR).
В Yii RBAC Cycle Database Storage добавили тестов и исправили несколько ошибок:
- метод
AssignmentsStorage::getByUserId()
возвращал некорректный результат (PR);- метод
ItemsStorage::getParents()
возвращал некорректный результат (PR);- при получении элементов RBAC при отсутствии правила вместо null устанавливалась пустая строка в качестве имени правила (PR).