Anonymous
Borys
Anonymous
Он там мне палки в колёса вставил, вроде не мог на дурную апишку заголовок верно передать...
SiZE
Anonymous
Oleg
Ivan
А подскажите как сделать пути чтобы вышло такое domainname.ru/car_name.php
Руслан
http://www.yiiframework.com/doc-2.0/yii-web-urlmanager.html#$suffix-detail
Иван
Иван
Народ, подскажите пожалуйста, можно ли в миграции получить объект класса из DI не как на скрине в 12 - й строке, а более изящно? Типа того, как в контроллере переопределяем конструктор, добавляя в его параметры переменную нужного класса, и DI нам сам ее создает, остается лишь в свойство класса ее пропихнуть. Или в миграции так не получится?
Anonymous
собвственно к чему такие сложности в миграции?
Anonymous
какая цель? В чём полезность такого подхода?
Anonymous
там 4 строчки, вы туда DI зачем-то приделываете.
Иван
цель больше узнать, можно ли в миграции получить объект сервиса более изящно, чем на примере
Anonymous
узнавать надо не на миграциях.
Anonymous
коллегам жизнь усложняете.
Иван
DI там нужен, т.к. у сервиса в конструкторе куча параметров, чтоб через new их не создавать пачкой, вот зачем DI
Aleksey
Yii::$app->discount… нет?
Иван
не...как компонент точно этот сервис мне не нужен
Aleksey
а как не в миграциях он создается?
Aleksey
можно скрин?
Иван
хотя наверное смысла в этом нет...миграция то часть фреймворка, а не доменного слоя...видимо через createObject именно в ней можно без угрызений совести создавать объект
Иван
щас
Иван
Aleksey
чот какаято жесть )
Иван
конкретно этот сервис не используется пока кроме как в миграции, но все может быть. Накидал пример по - быстрому в SiteController
Aleksey
зачем в конструктор контроллера это все передавать?
Aleksey
или делай компоннет yii или вообще не связанный с yii класс в /components (я так обычно делаю)
Иван
чот какаято жесть )
в чем жесть? бизнес логика инкапсулирована в сервисе. Что ж тут плохого? Я сервис дергаю хоть с миграции, хоть с контроллера вебовского, завтра с апи его дерну. Объект сервиса получаю из DI, т.к. таким же образом в конструкторе у него репозиторий карт прилетает, и менеджер транзакций
Aleksey
ты ломаешь стандартную архитектуру yii, потом кровь из ушей течет когда пытаешься что-то там делать. А если это нужно будет в 10 контроллерах - будешь 10 конструкторов ломать? а если будет еще 10 где этот сервис не нужен?
Aleksey
ощущение что следуешь паттерну ради паттерна не понимая выгод )
Anonymous
он не сломал конструктор.
Иван
Я ничего не ломаю) конструктор в Yii создается через DI, который парсит параметры, и создает переменные нужного типа
Anonymous
будет работать.
Иван
Где сервис не нужен - там я его пихать в конструктор не собираюсь естественно.
Иван
только туда, где нужен
Anonymous
вам просто нужно было посмотреть какими путями можно было сделать внедрение зависимости.
Иван
зато я избавляюсь от явного создания объекта, который между прочим, использует не один параметр
Anonymous
знаете, что самое забавное будет?
Anonymous
когда ваш сервис в далёком будущем изменится, и кто-то с нуля будет применять миграции -- то вероятно, что это место может сломаться.
Aleksey
http://joxi.ru/n2YabaHjy91126 - стандартный конструктор
Aleksey
а он туда прикрутил свой сервис
Anonymous
будет работать. Проверено.
Anonymous
вы сами попробуйте.
Nurik
В gridview неочевидное поведение когда юзаешь Fortatter.
'format'=>['datetime','php:d.m.Y H:i:s']
Игнорирует timezone который глобально задан в конфиге.(а еще и в системе) Так и должно быть ?
Иван
Да, Алексей, это работает. Мы переопределяем конструктор конкретного контроллеро всего - навсего
Aleksey
да работать то будет, только зачем так делать? теперь мне надо помнить что гдето поменян конструктор и нельзя привести все конроллеры к общему знаменательлю если что. А когда контроллеров перевалит за 100 и каждый будет лепить свой - будет ад
Aleksey
просто потому что DI это модно
Anonymous
это удобно.
Anonymous
а не модно.
Иван
Aleksey
вместо того чтобы сделать компонент и убрать проблему в приниципе
Aleksey
ну ооок )
Anonymous
вы просто не доросли. У вас ещё всё впереди ;)
Dmitry
да
ну вообще конечно если у тебя класс != один контроллер, то лучше в метод наверное инжектить
Anonymous
:)
Anonymous
началось.
Dmitry
все понял, устранился )))
Dmitry
Anonymous
умеет.
Иван
а ну если инжектить из контейнера - то пол беды) но все же, строкой больше в контроллере)
Aleksey
про дорос не дорос имеет смысл обсуждать когда проект перевалит за 100 контроллеров помноженных на команду говнокодеров, вот тогда начинаешь думать как делать архитектуру понятную обезьяне и при этом более менее грамотную )
Dmitry
Aleksey
а когда начинаешь делать DI как тут - возникает 100 точек кто что-то может пойти не так
Aleksey
зато DI )
Dmitry
Anonymous
:-)
Aleksey
нет, я думал ДО
Aleksey
и никаких проблем
Anonymous
молодец, думай дальше.
Aleksey
поэтому я против когда меняются стандартные методы
Anonymous
но не надо нам доказывать что мы что-то делаем не так.
Anonymous
да пожалуйста.
Aleksey
ок ок
Иван
Anonymous
только мы не знаем, что там у вас, а вы что у нас.