Size: a a a

2020 July 08

СП

Сергей Предводителев... in Yii Framework 2
Последний пример разве не практично?
источник

СП

Сергей Предводителев... in Yii Framework 2
Вместо того, чтобы копировать в разные модельки правила
['inlineValidation'],
['trim'],
['filter', 'filter' => 'intval'],
['number', 'min' => 9999],

просто подключаем TestRule::class
источник

T🐜

The Ant 🐜 in Yii Framework 2
Кастомный валидатор создается обычно когда не хватает стандартных.
Ну типа, спец функция, которая что-нибудь вычисляет, и затем сравнивает результат с пришедшими данными.
Тут же просто сгруппировал правила по какому-то критерию, при этом не обозначил цель такой валидации. Т.е. "на всякий случай" буду вот так. Это впоследствии путаницу создаст однозначно.
источник

СП

Сергей Предводителев... in Yii Framework 2
The Ant 🐜
Кастомный валидатор создается обычно когда не хватает стандартных.
Ну типа, спец функция, которая что-нибудь вычисляет, и затем сравнивает результат с пришедшими данными.
Тут же просто сгруппировал правила по какому-то критерию, при этом не обозначил цель такой валидации. Т.е. "на всякий случай" буду вот так. Это впоследствии путаницу создаст однозначно.
Почему, это будет логически сгрупировано, например PostNameValidator и там где мне надо будет валидировать название поста - я не буду писать правила, а буду подключать PostNameValidator::class
источник

XN

Xeon Null in Yii Framework 2
а тогда не проще сделать свой TrimFilterInlineNumber валидатолр?
источник

СП

Сергей Предводителев... in Yii Framework 2
Xeon Null
а тогда не проще сделать свой TrimFilterInlineNumber валидатолр?
Очень не универсально :)
источник

XN

Xeon Null in Yii Framework 2
Сергей Предводителев
Фишка в том, что можно от такого валидатора наследоваться:

class TestRule extends RuleValidator
{

   public $rules = [
       ['inlineValidation'],
       ['trim'],
       ['filter', 'filter' => 'intval'],
       ['number', 'min' => 9999],
   ];

   public function inlineValidation($attribute, $params, $validator)
   {
       ...
   }
}


И затем вот так использовать в правилах:

public function rules()
{
   return [
       ['attr', TestRule::class],
   ];
}
но это то-же самое
источник

СП

Сергей Предводителев... in Yii Framework 2
Не тоже самое, делая "TrimFilterInlineNumber" мне придется писать код, а тут я могу использовать конфиг rules
источник

Д

Дмитрий in Yii Framework 2
Сергей Предводителев
Почему, это будет логически сгрупировано, например PostNameValidator и там где мне надо будет валидировать название поста - я не буду писать правила, а буду подключать PostNameValidator::class
По-моему реально просто хочется создавать кучу классов. Подклассов. Классов подклассов. И ТД. Ну какой смысл делать новый класс ради группировки 3х правил? Я, например, пришел к вам на проект. Мне ж надо раскопать будет это все. Запомнить.. жесть.
источник

Д

Дмитрий in Yii Framework 2
В голове не поместится.
источник

А

Антон in Yii Framework 2
Я зашел в небольшой тупик

у меня есть yii\authclient\widgets\AuthChoice widget
и oauth авторизация причем все ссылки вида http://*.loc/auth/oauth?authclient=***

Однако одного из клиентов мне нужно провести через иную ссылку допустим через http://*.loc/auth/service?authclient=sso однако я не пойму как это сделать
источник

СП

Сергей Предводителев... in Yii Framework 2
Дмитрий
По-моему реально просто хочется создавать кучу классов. Подклассов. Классов подклассов. И ТД. Ну какой смысл делать новый класс ради группировки 3х правил? Я, например, пришел к вам на проект. Мне ж надо раскопать будет это все. Запомнить.. жесть.
Не надо ничего запоминать.

В моделях, где валидируется поле везде будет:
['name', PostNameRule::class]

А все правила для валидации поля будут в классе PostNameRule.


А вот если правила для валидации НЕ сгруппировать в отдельный класс, то будет дублирование этих правил по всем моделям, где это нужно валидировать.
источник

А

Антон in Yii Framework 2
Антон
Я зашел в небольшой тупик

у меня есть yii\authclient\widgets\AuthChoice widget
и oauth авторизация причем все ссылки вида http://*.loc/auth/oauth?authclient=***

Однако одного из клиентов мне нужно провести через иную ссылку допустим через http://*.loc/auth/service?authclient=sso однако я не пойму как это сделать
все это выглядит так
источник

Д

Дмитрий in Yii Framework 2
Сергей Предводителев
Не надо ничего запоминать.

В моделях, где валидируется поле везде будет:
['name', PostNameRule::class]

А все правила для валидации поля будут в классе PostNameRule.


А вот если правила для валидации НЕ сгруппировать в отдельный класс, то будет дублирование этих правил по всем моделям, где это нужно валидировать.
Ну конечно, если размазать форм-модел по куче подклассов то да, будет.
источник

Д

Дмитрий in Yii Framework 2
Ну хз вообщем. По мне это избыточно
источник

СП

Сергей Предводителев... in Yii Framework 2
Дмитрий
Ну конечно, если размазать форм-модел по куче подклассов то да, будет.
Форм-модел как раз никуда размазывать не надо. На каждый вход данных своя форм-модел.

Например:
Создание статьи
Редактирование только названия статьи
Редактирование полностью статьи
Изменение наззвания статьи по апи
источник

a

atcq (Алексей)... in Yii Framework 2
Дмитрий
Ну конечно, если размазать форм-модел по куче подклассов то да, будет.
ворвусь и я
источник

a

atcq (Алексей)... in Yii Framework 2
размазывание dto и классов работы с ними это иногда удобно
источник

СП

Сергей Предводителев... in Yii Framework 2
atcq (Алексей)
размазывание dto и классов работы с ними это иногда удобно
на развивающихся проектах - очень
источник

a

atcq (Алексей)... in Yii Framework 2
не только
источник