Borys
desktop: windows, server:debian centos. винды за глаза хватит. в том случае если вам не нужно писать для проекта какие то демоны, что то конвертировать, и т.п...
С centos поработал на серверах, но хочу с ubuntu куда-то переползти, ибо последнее время начала чот крашится с переодичностью ну и + я не на LTS.
Anonymous
Он там мне палки в колёса вставил, вроде не мог на дурную апишку заголовок верно передать...
SiZE
Один раз пробовал, выбросил, возми газл.
газл тоже есть ) но уже сделано
Anonymous
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, т.к. таким же образом в конструкторе у него репозиторий карт прилетает, и менеджер транзакций
Иван
или делай компоннет yii или вообще не связанный с yii класс в /components (я так обычно делаю)
Компонент во - первых - часть фреймворка, а не бизнес логики, в отличие от сервиса, который является частью доменного слоя
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 который глобально задан в конфиге.(а еще и в системе) Так и должно быть ?
Dmitry
а он туда прикрутил свой сервис
а в твоем скрине еще один конструктур куда прилепили модуль и id ;)
Иван
Да, Алексей, это работает. Мы переопределяем конструктор конкретного контроллеро всего - навсего
Aleksey
да работать то будет, только зачем так делать? теперь мне надо помнить что гдето поменян конструктор и нельзя привести все конроллеры к общему знаменательлю если что. А когда контроллеров перевалит за 100 и каждый будет лепить свой - будет ад
Aleksey
просто потому что DI это модно
Anonymous
это удобно.
Anonymous
а не модно.
Aleksey
вместо того чтобы сделать компонент и убрать проблему в приниципе
Aleksey
ну ооок )
Anonymous
вы просто не доросли. У вас ещё всё впереди ;)
Dmitry
да
ну вообще конечно если у тебя класс != один контроллер, то лучше в метод наверное инжектить
Anonymous
:)
Anonymous
началось.
Dmitry
все понял, устранился )))
Иван
ну вообще конечно если у тебя класс != один контроллер, то лучше в метод наверное инжектить
да даже если и один метод в контроллере. Пока ты все new Object() сделаешь - толщина контроллера перевалит за высоту экрана
Anonymous
умеет.
Иван
а ну если инжектить из контейнера - то пол беды) но все же, строкой больше в контроллере)
Aleksey
про дорос не дорос имеет смысл обсуждать когда проект перевалит за 100 контроллеров помноженных на команду говнокодеров, вот тогда начинаешь думать как делать архитектуру понятную обезьяне и при этом более менее грамотную )
Aleksey
а когда начинаешь делать DI как тут - возникает 100 точек кто что-то может пойти не так
Aleksey
зато DI )
Anonymous
:-)
Aleksey
нет, я думал ДО
Aleksey
и никаких проблем
Anonymous
молодец, думай дальше.
Aleksey
поэтому я против когда меняются стандартные методы
Anonymous
но не надо нам доказывать что мы что-то делаем не так.
Anonymous
да пожалуйста.
Aleksey
ок ок
Иван
про дорос не дорос имеет смысл обсуждать когда проект перевалит за 100 контроллеров помноженных на команду говнокодеров, вот тогда начинаешь думать как делать архитектуру понятную обезьяне и при этом более менее грамотную )
сервис - это часть доменного слоя, в методологии DDD, который как раз и создан умными дядьками для грамотного проектирования и поддержки больших систем
Dmitry
поэтому я против когда меняются стандартные методы
инжектить зависимость это не страндартный подход?
Anonymous
только мы не знаем, что там у вас, а вы что у нас.