Size: a a a

2020 September 10

T🐜

The Ant 🐜 in Yii Framework 3
и? мне например надо будет указать в конфиг версию апи, откуда брать контроллеры, что делать тогда? грузить все?
источник

T🐜

The Ant 🐜 in Yii Framework 3
как резолвить потом
источник

AB

Alexander Borisov in Yii Framework 3
Виктор
Угу. И в консоли у тебя будет роутинг, сконфиженный отдавать 403 без валидной авторизации в заголовках...
ну у тебя в коносле Application не вызывается, не вызываются все эвенты, которые относятся к вебу, соответственно и роутинг ни разу не вытащиться из контейнера
источник

NO

Nex Otaku in Yii Framework 3
А если в консоли мне нужен роутинг? ) Для своих целей, URL в письме указать?
источник

AB

Alexander Borisov in Yii Framework 3
вот да. и в такой ситуации может возникнуть проблема, что обращаешься за классом в контейнер, а тебе автоматически возвращается заавтовайренный вместо законфиженного в другом контексте
источник

DS

Dmitriy S in Yii Framework 3
Alexander Borisov
ну у тебя в коносле Application не вызывается, не вызываются все эвенты, которые относятся к вебу, соответственно и роутинг ни разу не вытащиться из контейнера
На одно и то же событие может быть разный обработчик в веб и в консоли
источник

AB

Alexander Borisov in Yii Framework 3
Dmitriy S
На одно и то же событие может быть разный обработчик в веб и в консоли
там разный набор событий. или ты о чем?
источник

DS

Dmitriy S in Yii Framework 3
Не факт, у них есть общий конфиг и общие сервисы, которые могу тригеррить одно и то же событие и в консоли и в вебе, но обработать его надо по-разному.
источник

DS

Dmitriy S in Yii Framework 3
Nex Otaku
А если в консоли мне нужен роутинг? ) Для своих целей, URL в письме указать?
Кидаешь сервисы роутинга в common
источник

AB

Alexander Borisov in Yii Framework 3
ну теоретически конечно можно… вопрос - бывает ли так?
источник

AB

Alexander Borisov in Yii Framework 3
сколько живу с одним контейнером на приложение - ни разу проблем не было. поэтому и удивляюсь разделению на контексты
источник

DS

Dmitriy S in Yii Framework 3
Alexander Borisov
ну теоретически конечно можно… вопрос - бывает ли так?
Бывает. Ну и еще момент, один и  тот же сервис может иметь разные настройки для консоли и для веб
источник

AB

Alexander Borisov in Yii Framework 3
Пример можешь привести?
источник

DS

Dmitriy S in Yii Framework 3
Alexander Borisov
Пример можешь привести?
Например, когда ты создаешь пользователя, ему надо отправить уведомление на почту, но если создаешь пользователя в админке, то еще в копии указать email админа и записать действие в лог админки, а если в консоли, то просто уведомление отправить
источник

AB

Alexander Borisov in Yii Framework 3
Это разные эвенты, разве нет?
источник

DS

Dmitriy S in Yii Framework 3
Alexander Borisov
Это разные эвенты, разве нет?
Нет, одно, но если нет разделения конфигов, то придется делать разные
источник

DS

Dmitriy S in Yii Framework 3
Dmitriy S
Нет, одно, но если нет разделения конфигов, то придется делать разные
Вернее даже не так, надо будет в листенере определять тип приложения, что будет весьма коряво
источник

EU

Evgeniy U in Yii Framework 3
Dmitriy S
Например, когда ты создаешь пользователя, ему надо отправить уведомление на почту, но если создаешь пользователя в админке, то еще в копии указать email админа и записать действие в лог админки, а если в консоли, то просто уведомление отправить
Мне кажется, что в этом случае для панели будет просто другая логика и другое событие или дополнительная логика. Мне тоже не нравится 10 разных конфигов.
источник

AB

Alexander Borisov in Yii Framework 3
Не согласен, но идею понял. Получается, что логика приложения во многом переходит в конфиги, т.о. сложнее из кода понять как будет работать код с помощью тех же переходов по классам
источник

DS

Dmitriy S in Yii Framework 3
Evgeniy U
Мне кажется, что в этом случае для панели будет просто другая логика и другое событие или дополнительная логика. Мне тоже не нравится 10 разных конфигов.
Нет. Смотри, у тебя есть сервис App\Service\User в нем есть метод create() в котором вызывается $this->dispatcher->trigger(UserAfterCreate::class). И вот этому сервису абсолютно однофигственно куда ты его заинжектишь, в консольную команду или в веб-контроллер.
источник