
Like
08.04.2018
19:31:22

Владимир
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
+

Alexey
09.04.2018
02:52:37


Игорь
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 со своими параметрами, поведением и логикой

☕ CunningFox
09.04.2018
06:37:39

Ruslan
09.04.2018
06:38:12

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

Google

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

Like
09.04.2018
06:43:10

Дмитрий
09.04.2018
06:58:48

☕ CunningFox
09.04.2018
07:01:41

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:37:57
у тебя что $arr1, что $arr2 могут быть экземплярами различных классов

Eugene
09.04.2018
07:42:41

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

Like
09.04.2018
08:01:10

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']) использовать <=>?)

Дмитрий
09.04.2018
08:03:00

Like
09.04.2018
08:03:50

Google

Eugene
09.04.2018
08:04:31
просто у меня из за легаси название полей различаются

Like
09.04.2018
08:04:55

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

Eugene
09.04.2018
08:08:51

Дмитрий
09.04.2018
08:09:21

Санжар
09.04.2018
08:11:56

Alexey
09.04.2018
08:24:58

Дмитрий
09.04.2018
08:26:46

Alexey
09.04.2018
08:28:39

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:44:17

Сергей
09.04.2018
08:45:12

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

Pavel
09.04.2018
09:31:13

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()

SiZE
09.04.2018
09:55:53

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 поддопилить чтобы запросы брались без этого поля? Или работать же работать только по перечислению полей?

Like
09.04.2018
10:01:19

Антон
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
как-то так

SiZE
09.04.2018
10:06:21

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;