@yii2ru

Страница 1132 из 1721
Владимир
09.04.2018
01:30:10
@HunterKaan @rus72ru спасибо! Дали пищи для размышлений)

Игорь
09.04.2018
02:22:24
Объясните мне, безграмотному, пожалуйста. Вот я беру и в конструктор контроллера вставляю некий blogService. Благодаря di он автоматически подтянется и создаст обьект с этим классом. Это понятно. Собственно, вопрос. А если уже внутри этого blogService также имеется конструктор в который подтягивается некий blogRepository и он описан в секции use класса blogService, то он также автоматически его создаст, благодаря di? То есть отдельно настраивать в bootstrap его не нужно? Если я правильно понимаю, то настройка di требуется лишь в случае, когда неоднозначно понятно какой класс фреймворку подтягивать? ( Ну например дня случая, когда в качестве типа указан интерфейс). Поправьте меня, пожалуйста, если заблуждаюсь.

Alexey
09.04.2018
02:38:00
Это называется autowiring

Google
Alexey
09.04.2018
02:39:19
Настройка нужна если сервис должен быть, например, синглтоном. Или инстанс сервиса требует доп конфигурации.

Игорь
09.04.2018
02:48:24
+

Настройка нужна если сервис должен быть, например, синглтоном. Или инстанс сервиса требует доп конфигурации.
А какая, например, может потребоваться конфигурация? Приведите пример. Передача дополнительных переменных/значений/ классов? Вы это имеете в виду?

Игорь
09.04.2018
03:01:56
И еще небольшой вопрос по di. Я хочу разобраться правильно ли тут будет его применение. Допустим, я хочу настроить и использовать несколько сервисов рассылки смс сообщений. Причем, какой-то сервис я беру за основной, а остальные как резервные. Где-то в недрах идет вызов этого главного сервиса смс путем запроса из БД какой из них использовать. (Подразумевается, что все мои сервисы имеют общий интерфейс). И уже, получая из БД имя класса я создаю этот объект через createObject, например. Вот такое решение, что я описал это и есть один из распространенных случаев использования di? Правда, в данном конкретном случае может использование di не совсем оправдано? Достаточно просто создать класс с его именем, полученным из БД? Значит, возможно этот запрос можно сделать из bootstrap каким-то образом? Тот же синглтон, наверно нужен будет. Ведь сервис один на протяжении всего цикла приложения. В общем, запутался немного.

Alexey
09.04.2018
03:18:26
di тут не очень применим

мы просто в очередь сообщений писали, через какой шлюз сообщение должно быть отправлено https://github.com/yii-dream-team/yii2-sms-center/tree/master/src



вот пример типичного использования DI

Ruslan
09.04.2018
06:34:39
Кто то делал api в таком формате? https://github.com/DmitryKorobko/BigBiz/tree/c0c7a6f2b2cfcf25c72f3764db23fe557a116c0a/rest/modules/api/v1 1. Все сгруппировано по модулям (suport, shop, product,content) 2. Для каждого action создается отдельный класc со своими параметрами, поведением и логикой

Ruslan
09.04.2018
06:38:12
ActiveController в рест?
вопрос о структуре

☕ CunningFox
09.04.2018
06:38:17
Как пример реализации

Google
☕ CunningFox
09.04.2018
06:39:59
Так, модуль пилишь, контроллер и действия для контроллеров если хочется отдельными классами. В этом есть смысл если использовать одинаковые действия в разных контроллерах

Дмитрий
09.04.2018
06:58:48
Eugene
09.04.2018
07:29:00
ребята, как отсортировать массив после array_merge? пытаюсь использоваться что то типа usort($model, function($arr1, $arr2) { if ($arr1['news_date'] == $arr2['cdate_int']) return 0; return $arr1['news_date'] > $arr2['cdate_int'] ? 1 : -1; }); и постоянно получаю ошибку Getting unknown property: ***\***\news\***\News::news_date тут суть в том, что блин он свойство одного массива пытается найти в другом и крашится, как правильно делать?

Дмитрий
09.04.2018
07:35:44
Чет, код какая то херня

Антон
09.04.2018
07:36:31
+

вообще не понятно что это и зачем

Borisov
09.04.2018
07:43:20
это был не вопрос :D естественно он будет ругаться, когда свойство(атрибут) не находит

Eugene
09.04.2018
08:01:24
Дмитрий
09.04.2018
08:01:37
spaceship оператор

Like
09.04.2018
08:01:38
что?)
То что прочитал)

usort($model, function($arr1, $arr2) { return $arr1['news_date'] <=> $arr2['cdate_int']; });

Eugene
09.04.2018
08:02:14
То что прочитал)
вместо if ($arr1['news_date'] == $arr2['cdate_int']) использовать <=>?)

Like
09.04.2018
08:03:50
вместо if ($arr1['news_date'] == $arr2['cdate_int']) использовать <=>?)
Но, правда, как тебе уже сказали - какая-то конченая сортировка ?

Google
Eugene
09.04.2018
08:04:31
Но, правда, как тебе уже сказали - какая-то конченая сортировка ?
почему конченная? просто сливаю две выборки в один массив и пытаюсь его отсортировать, в чем конченность то?) все обычно ж вроде

просто у меня из за легаси название полей различаются

Eugene
09.04.2018
08:05:14
да хорош гнобить

Like
09.04.2018
08:05:40
Тогда сделай return ($arr1['news_date'] ?? $arr1['cdate_int']) <=> ($arr2['cdate_int'] ?? $arr2['news_date']);

А лучше займись рефакторингом ?

да хорош гнобить
У тебя какая-то версия пыхи хоть?

Дмитрий
09.04.2018
08:07:21
да хорош гнобить
Это не гнобление а конструктивная критика. Привыкай

андрей
09.04.2018
08:07:54
Привет как можно спарсить страничку например с яндекса

Like
09.04.2018
08:08:02
Сина

Eugene
09.04.2018
08:08:36
Like
09.04.2018
08:08:50
5.4 или типа того)
Тогда все плохо

Eugene
09.04.2018
08:08:51
Тогда все плохо
ты вдохновляешь ахах

Дмитрий
09.04.2018
08:09:21
Дмитрий
09.04.2018
08:26:46
Можно свой сериализатор написать с вайтлистингом полей
Ну пока была придумана фабрика с подменой классов

Google
Alexey
09.04.2018
08:29:00
Проще на уровне сериализатора словить

Like
09.04.2018
08:30:25
Вы лучше объясните

В чем профит?

Сергей
09.04.2018
08:38:30
Ребят, привет. Нужен программист на yii2 поработать над большим проектом конфигуратора (конструктора). Работа через git. У нас компания в Москве, возможно работать у нас в офисе если вы рядом живете. Нужен сотрудник на постоянную работу по 6-8 часов в день. Если кому интересно, пишите в лс.

Антон
09.04.2018
08:40:42
вилка зарплат какая?

Сергей
09.04.2018
08:43:44
Зависит от отработки и вашего уровня, все обсуждается персонально, 400-500 рублей в час с возможностью повышения ставки.

Сергей
09.04.2018
08:45:12
@yiijobs
спасибо, отпишусь туда

Olga
09.04.2018
09:27:49
Привет, у меня такой вопрос. REST API, есть методы которые меняют состояния, но не возвращают объекты, например DELETE /resource/<id>. Если все ок, будет http code 200, но возвращать какой-нибудь json {"success":true} как-то не очень красиво. Как правильнее и красивее в таких случае отвечать апи? Как вариант вообще пустое тело ответа, но не будет ли это недостаточно понятно для клиента, что все ок?

Olga
09.04.2018
09:31:53
ок

Kirill
09.04.2018
09:36:31
А что плохого в возврате json?

Olga
09.04.2018
09:48:32
Алексей
09.04.2018
09:51:37
Здравствуйте! А не подскажите как сделать DISTINCT и leftJoin в yii одновременно?

Антон
09.04.2018
09:52:37
::find()->select(['company_name', 'client_code'])->distinct()

Andrey
09.04.2018
09:53:27
Избыточность
По моему мнению ответ сервера и ответ бизнес-логики не одно и тоже. Ответ сервера 200, а результат логики что угодно. И как раз ответ логики в тело ответа в виде json отличный вариант. Но каждому своё.

Антон
09.04.2018
09:53:51
::find()->leftJoin()

Farhodjon
09.04.2018
09:54:48
::find()->distinct()->leftJoin()

Google
Алексей
09.04.2018
09:58:01
SELECT table1.created_at FROM table2 LEFT JOIN table1 ON table2.id = table1.controller_id WHERE table1.controller_id IN (SELECT DISTINCT id FROM `table2`);

а что-нибудь наподобие такого можно получить?

Like
09.04.2018
09:59:30
Адя, ухади

Mengi
09.04.2018
09:59:39
Всем привет! Застрял с такой задачкой. Менять на структуру таблиц и вьюх нет прав. SI_V_PERSONS- view, а не таблица. Объявил как модель ActiveRecord. Запрос $query = SI_V_PERSONS::find()->limit(100); выдает ошибку oci_fetch_array(): ORA-00932: inconsistent datatypes: expected CHAR got TABLE И у SI_V_PERSONS - имеет 1 поле (VC_TAGS) у которого в типе стоит ссылка на другую таблицу.(Nested table) Запросы без этого поля работают. При перечислении полей без этого поля запрос работает. $query = SI_V_PERSONS::find()->select (['N_SUBJECT_ID','N_SUBJ_TYPE_ID'])->limit(100); Можно ли ActiveRecord поддопилить чтобы запросы брались без этого поля? Или работать же работать только по перечислению полей?

Антон
09.04.2018
10:01:27
Избыточность
Rest-запрос это тот же вызов метода, только удалённый. Например в Yii delete() возвращает "The number of rows deleted, or false". Т.е. можно возвращать HTTP 200, а в тело ответа так же возвращать кол-во удалённых записей. Соответственно при ошибке возвращать в HTTP код ошибке, а в теле сообщение ошибки.

Like
09.04.2018
10:01:30
Не понимать "не красиво"

А можно забить на рест и сделать свои коды ответа

Ad.x ??
09.04.2018
10:02:03
Like
09.04.2018
10:02:37
Госпаде

Зачем

В колбеке успеха делаешь что нужно В колбеке ошибки - показываешь ее Все ?

Я вангую, что в первом случае любого Notify с 'Успех' будет достаточно

Антон
09.04.2018
10:05:59
SELECT table1.created_at FROM table2 LEFT JOIN table1 ON table2.id = table1.controller_id WHERE table1.controller_id IN (SELECT DISTINCT id FROM `table2`);
$subquery = Table2::find()->select('id')->distinct(); Table1::find()->select('created_at')->leftJoin('table1',...)->where(['controller_id' => $subquery])->all()

как-то так

SiZE
09.04.2018
10:06:21
Я вангую, что в первом случае любого Notify с 'Успех' будет достаточно
Нафига отвечать успех, когда можно кинуть 204?

Ruslan
09.04.2018
10:06:33
вопрос по yii первому как можно объединить эту конструкцию "OR" $criteria->addCondition('t.id IN(' . $this->ids_from_seo_category . ')'); $withnoms = array( 'nomenclatures' => array( 'together' => false, 'condition' => "nomenclatures.id IN(".$this->ids_from_seo_category.")" ), ); $criteria->with = $withnoms;

Страница 1132 из 1721