Dmitriy
Dmitriy
хочется через конструктор пробрасывать
Dmitriy
дабы тесты были норм
Dmitriy
Потому что мы перекидываем зависимость не в конструктор. И да мы перекидываем реализацию а не интерфейс
Dmitriy
перекидывать реализацию это дно
Dmitriy
У queue например нет интерфейса .
KoJIT
Если нет интерфейса это плохо.
Не совсем понял с перекидыванием, можешь показать пример ? И насколько мне известно объект либо создается внутри, либо перекидывается ссылка на него через конструктор или сеттер
Dmitriy
как хорошо.
public function __contruct(QueueInterface $queue)
как плохо
public function __construct(){
$queue = Yii::createObject(['class' => queueClassName, ...])
}
KoJIT
понял, а чем плох такой вариант ?
$queue = Yii::createObject(['class' => queueClassName, ...]);
$form = Yii::createObject(['class' => formClassName, 'queue' => $queue, ...]);
protected $queue;
public function setQueue(QueueInterface $queue) {
$this->queue = $queue;
}
Dmitriy
Куда это писать то ? setQueue мы сами должны сделать ? что бы вызвать очередь .
Я не понял где это применяется
Stas
кто то юзал платежку Fondy?
Ярослав
@KoJIT Дима тебе показал один из способов внедрения зависимостей, главное, чтобы ты понял общую идею
А как ты будешь их внедрять через метод или через конструктор зависит уже от конкретной задачи
Вот полезная статейка по видам Dependency Injections
http://coders-kitchen.com/2015/01/05/dependency-injection-field-vs-constructor-vs-method
Ярослав
Вообще Service Locator в определенных ситуациях является антипаттерном , нарушая SOLID
Об этом есть много статей и столько же мнений
Кому интересно можете погуглить на эту тему
Joel Ex
всем привет, подскажите новичку, есть ссылки типа:
site.ru/user/edit/id1
как лучше организовать чтоб другому пользователю запретитить просматривать другие id, а только те id которые ему принадлежат
Borys
Joel Ex
ок, спасибо
Михаил
Здарова парни, подскажите плз
вот есть такй урл http://new.loc/product/view?id=6
как сделать чтобы урл был типа http://new.loc/Lodki/motor-veterok
SiZE
UrlManager, Rule
Михаил
сейчас скину запись
Dmitry
Михаил
'product/<slug:[w-]+>' => 'product/view'
Михаил
это правило
Михаил
Url::to(['product/view','id' => $category['id'], 'slug' => $category['url']])
Dmitry
а не работает что? переход или вывод ссылки?
👻
Михаил
Михаил
Михаил
ошибку
Михаил
http://skrinshoter.ru/s/281017/c6e8uJq2?a
Dmitry
Михаил
когда вот так пишу
Михаил
Url::to(['product/view', 'slug' => $category['url']])
Михаил
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'<action:(about|contact|login)>' => 'site/<action>',
'product/<slug:[w-]+>' => 'product/view'
],
],
Михаил
djn vjb yfcnhjqrb
Михаил
вот настройки
Roman
в акшене же написан параметр ID
Roman
вот и 400
Roman
а суете слуги
Михаил
мне нужнвот есть такй урл http://new.loc/product/view?id=6
как сделать чтобы урл был типа http://new.loc/Lodki/motor-veterok
Roman
ну так акшен нужно переделывать
Михаил
что в экшен передавался не id а slug &
Dmitry
Михаил
я тправильно понял ?
Михаил
ок, сча попробую
Михаил
чтото получилось
Михаил
но не до конца
Михаил
)
Михаил
теперь генерируется такой урл http://new.loc/product/wdasaw?id=5
Михаил
как убрать в конце ?id=5
Михаил
&
Михаил
?
👻
Убери айди из формирования урла
Михаил
в правилах прописать ?
Михаил
или как ?
Михаил
чет не догоняю
Dmitry
или пропиши в правиле, если надо
Borys
Borys
В доке пример есть
Borys
Ссылку тебе выше скинули, ты пишешь неправильное правило, естественно оно не отрабатывает
👻
Михаил
'product/<slug:[\w-]+>' => 'product/view'
Михаил
вот правило
👻
тут верно
Dmitry
Михаил
нету
👻
а у тебя в формированиии ссылки идет айди вот оно тебе его и ставит
👻
тогда ему не откуда браться
Михаил
'product/<slug:[\w-]+>' => 'product/view' суда можно жописать чтобы айди не показывало ?
👻
у тебя тут все верно
Михаил
если в контролере передаю не айди, не находит нужную страницу
👻
ну значит у тебя в контроллере идет поиск по id а тебе надо его заменить на поиск по slug
👻
и все будет работать