Size: a a a

2020 July 13

RT

Roman Tsurkanu in Yii Framework 3
Дмитрий
Нет, как раз контролёры грязнее. Вместо объекта оперируют кучей переменных.
Еще раз - у тебя в контроллере, вместо

$form = (new Form());
$form->load($request);
$this->validate($form);

$username = $form->getUsername()

будет сразу

$username = $form->getUsername()

По этому чище. И объект будет, ты его черз параметры получишь.

3 раз уже обсуждаем и как будто о разных вещах говорим, давайте в след раз обсудим если будет pr.
источник

А

Алексей R in Yii Framework 3
Roman Tsurkanu
Еще раз - у тебя в контроллере, вместо

$form = (new Form());
$form->load($request);
$this->validate($form);

$username = $form->getUsername()

будет сразу

$username = $form->getUsername()

По этому чище. И объект будет, ты его черз параметры получишь.

3 раз уже обсуждаем и как будто о разных вещах говорим, давайте в след раз обсудим если будет pr.
Можно первые 2-3 строки заменить загрузкой формы из контейнера. Или ты об этом же? (Я чёт сначала об аннотациях подумал)
источник

RT

Roman Tsurkanu in Yii Framework 3
Об этом + добавление данных из реквеста в форму тоже где-то там.
источник

RT

Roman Tsurkanu in Yii Framework 3
в мидлваре
источник

Д

Дмитрий in Yii Framework 3
Roman Tsurkanu
Минус - всмысле у тебя не будет этих строк в контроллере

$form = (new Form());
$form->load($request);
$this->validate($form);
вообще это похоже на  AAA в тестах, т.е. так нагляднее и прозрачнее.
источник

Д

Дмитрий in Yii Framework 3
Roman Tsurkanu
Еще раз - у тебя в контроллере, вместо

$form = (new Form());
$form->load($request);
$this->validate($form);

$username = $form->getUsername()

будет сразу

$username = $form->getUsername()

По этому чище. И объект будет, ты его черз параметры получишь.

3 раз уже обсуждаем и как будто о разных вещах говорим, давайте в след раз обсудим если будет pr.
но так да, код короче.
я недавно такое хотел прикрутить в симфу: валидация в мидлваре, чтобы в экшене был всегда валидный dto
источник

RT

Roman Tsurkanu in Yii Framework 3
гитхаб опять умер
источник

АН

Александр Некрасов... in Yii Framework 3
Roman Tsurkanu
гитхаб опять умер
+
источник

АН

Александр Некрасов... in Yii Framework 3
очень часто падает он в последнее время (
источник

RM

Rustam Mamadaminov in Yii Framework 3
+
источник

DS

Dmitriy S in Yii Framework 3
Dmitriy S
Все делается сильно проще, мидлтварь fn => new FormValidator(LoginForm::class), внутри получает из контейнера инстанс формы, загружает данные и валидирует, когда доходит до контроллера в контейнере уже есть отвалидированный инстанс LoginForm, который можно получить из контейнера public function login(LoginForm $loginForm)
Я вроде уже предлагал такой вариант)
источник

DS

Dmitriy S in Yii Framework 3
Прошлый раз тоже гитхаб упал во время обсуждения валидации форм до конроллера))
источник

RT

Roman Tsurkanu in Yii Framework 3
Dmitriy S
Я вроде уже предлагал такой вариант)
Да, отличный вариант. Я займусь. Там просто есть нюансы.
источник

RT

Roman Tsurkanu in Yii Framework 3
Dmitriy S
Прошлый раз тоже гитхаб упал во время обсуждения валидации форм до конроллера))
)))
источник

RT

Roman Tsurkanu in Yii Framework 3
Традиция у нас такая будет - упал гитхаб - идем обсуждать валидацию)
источник

АН

Александр Некрасов... in Yii Framework 3
Roman Tsurkanu
Традиция у нас такая будет - упал гитхаб - идем обсуждать валидацию)
наоборот, хотим положить гитхаб, начинаем обсуждать валидацию )
источник

RT

Roman Tsurkanu in Yii Framework 3
)))
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
Все делается сильно проще, мидлтварь fn => new FormValidator(LoginForm::class), внутри получает из контейнера инстанс формы, загружает данные и валидирует, когда доходит до контроллера в контейнере уже есть отвалидированный инстанс LoginForm, который можно получить из контейнера public function login(LoginForm $loginForm)
блин.. а ведь и правда проще. и настраиваемо. хочешь так, хочешь в контроллере валидируй.
источник

АН

Александр Некрасов... in Yii Framework 3
@yiiliveext как в MiddlewareDispatcher добавить Middleware до RouterMiddleware из модуля ?, через евент ?
источник

DS

Dmitriy S in Yii Framework 3
Александр Некрасов
@yiiliveext как в MiddlewareDispatcher добавить Middleware до RouterMiddleware из модуля ?, через евент ?
Ты хочешь динамически добавить?
источник