
Sergey
18.11.2017
11:36:24

Вадим
18.11.2017
11:38:32

Vladislav
18.11.2017
11:41:53
а что тебе еще надо?
bin/console notification:send ID

Google

Vladislav
18.11.2017
11:42:23
при создании нотификейшена создаешь и джобу

Вадим
18.11.2017
11:44:00
хм .. я думал в очередь писать сами нотификации .. и читать их прям из очереди. А тут получается тоже самое, но через консоль, как прослойку.

Vladislav
18.11.2017
11:45:03
ну или допустим я захотел историю, ты будешь мне их выдавать с пагинацией с очереди?

Вадим
18.11.2017
11:46:10
ну как, обычно .. получить новые сообщения из очереди. А историю тянуть из базы.

Vladislav
18.11.2017
11:46:36
аааа, ну как хочешь )
ап ту ю)

Вадим
18.11.2017
11:46:39
ПО реквесту например, лезу в определнные очереди, и смотрю если там что-то для данного юзера

Vladislav
18.11.2017
11:46:44
просто зачем дублировать инфу

Вадим
18.11.2017
11:47:16
Что б при каждом реквесте за новыми сообщениями не дергать мускуль
Хотя не понятно, что большее зло ) Дополнительная зависимость, в сервере очередей ) Или дергать мускуль )

Vladislav
18.11.2017
11:51:10
скажи мне такое: как твой клиент будет знать что появился нотификейшн?

Вадим
18.11.2017
11:53:09
Лезу в очередь, и выдаю ему все из очереди, все что есть для него. В очереди лежат только новые и не прочитанные нотификации. Как только пользователь прочитал нотификацию, она из очереди удаляется.

Google

Вадим
18.11.2017
11:56:23
И подписки в вебсокете, будут такие же как и очереди в сервере очередей

Vladislav
18.11.2017
11:57:13
а не проще через вебсокет отправить на клиент нотификейшн ?

Вадим
18.11.2017
12:00:18
Ну самый простой вариант, где надо отправлять нотификацию пользователю, или группе. Я создаю подписки на очередь персональных сообщений, и несколько подписок на группы которые есть у пользователя. Таким образом по разным каналам могу отпралять разные сообщения

Vladislav
18.11.2017
12:02:39
ну или так

Вадим
18.11.2017
12:04:25
Ну вот так например https://habrahabr.ru/post/201096/
В таком случае запись в базу, можно вообще повесить на слушателя, который будет получать все сообщения, и избавится от записи в базу в самом реквесте
В момент создания нотификации
Хотя в некоторые моменты, мне кажется это каким-то оверинжинирингом )

Vladislav
18.11.2017
12:12:22
ну так и есть. я просто пишу в бд нотификейшн и создаю джобу на отправку.

Вадим
18.11.2017
12:13:05

Vladislav
18.11.2017
12:13:39
я юзнул ratchet, этоот бандл тоже юзает эту либу
она на основе react php

Вадим
18.11.2017
12:15:09
ну так и есть. я просто пишу в бд нотификейшн и создаю джобу на отправку.
Ну у меня помимо пользователя, есть еще группы, и смены (люди выходят на работу), и места где люди работают. А нотификации надо рассылать И все пользователям которые находстся в определенном месте, определенной смене, определенной группе, и на прямую пользователю. ПОтому сижу думаю, как бы это все красиво сделать ;)

Vladislav
18.11.2017
12:16:05
ты можешь получить список юзеров группы, определенной смены и тд ?

Вадим
18.11.2017
12:16:06

Vladislav
18.11.2017
12:20:30
аа, там в ратчете есть возможность подписки на каналы. на каждую смену делаешь канал)

Вадим
18.11.2017
12:24:57
Ну вот, я так и хотел. И точно так же сделать в сервере очередей. И отправлять сообщения, если надо смене. sendNotification(['shift_'.$shift_id],'Message); . А пользователя подписывать на нужные каналы в зависимости от его действий, если пришел на работу, то подписать его на канал смены, ушел с работы, отписать. И разруливать это можно вообще на стороне сервера, а в вебсокете подписка будет на один канал. Хотя проще подписать на такие же каналы как и в сервере очередей (по сути ретранслировать).

Mikhail
18.11.2017
12:26:54
Почему? На него была Надежда прям
Не думаю что сможешь там набрать аж десяток симфонистов в офис. Гораздо проще найти норм лида и обучить команду в любом городе, либо найти готовых на удаленку
Любую большую команду все равно лид вытягивает

Google

Vlad
18.11.2017
12:37:22
нет такого бандла
https://github.com/GrossumUA/GrossumNotificationBundle сам не использовал

Вадим
18.11.2017
12:51:15

Vladislav
18.11.2017
12:59:35
ну вместо ноды напиши свою логику на ратчете

vlad
18.11.2017
13:17:44
ребят, такой вопрос:
в сущности лежит поле типа DateTime
есть репозиторий, где описан подобный запрос:
$qb = $this->_em->createQueryBuilder();
$qb->select('t')
->from('AppBundle:Test', 't')
->where('t.start < :now')
->andWhere('t.status = :status')
->setParameter('now', new \DateTime('now'), \Doctrine\DBAL\Types\Type::DATETIME)
->setParameter('status', $status);
return $qb->getQuery()->getResult();
так вот, вроде бы всё корректно описано
мне нужно выдернуть оттуда те элементы, у который поле start, т.е. время, меньше текущего
@kopaygorodsky спасибо, учту:)

Vladislav
18.11.2017
13:21:38
func someRepoMethod($current \DateTime)
andWhere('el.start <= :current')
->setParameter('current', $current)
getRepo()->someRepoMethod(new \DateTime())

vlad
18.11.2017
13:22:12
на самом деле делал уже так, передавал как аргумент
и эффект был тот же

Vladislav
18.11.2017
13:22:17
не хардкодь дату, сделай параметром
а что тогда не так? должно работать

vlad
18.11.2017
13:23:48
да по-идее должно..
но иногда вообще выборку не берёт, говорит, что 0 записей
хотя они там в этот момент есть
а иногда берёт, но не учитывает второе условие
->andWhere('t.status = :status')

vlad
18.11.2017
13:23:57
во второе условие, к слову, строка передаётся
я вот думаю, может с кодировкой что

Вадим
18.11.2017
13:24:06
Попробуй віполнить напрямую

Vladislav
18.11.2017
13:24:21
ну продебажь
запрос нормально написан
сделай дамп параметров которые приходят и глянь в профайлере запросы
которые генерятся в результате и все поймешь

Вадим
18.11.2017
13:25:44
У меня была такая проблема, на 2-х разных серверах ... т.к. Maria и Mysql, первый нормально конвертировал стринг в datetime а второй, отказывался, потому и выдавал пустые результаты. Решил добавлением функции STR_TO_DATE в запрос

Google

Вадим
18.11.2017
13:27:13
Вот как пришлось написать
->andWhere("STR_TO_DATE(:startDate,'%Y-%m-%d %H:%i:%s') BETWEEN s.beginShiftDateTime and (s.beginShiftDateTime + s.minLateClockIn)")

vlad
18.11.2017
13:30:13
спасибо, сейчас попробую

Вадим
18.11.2017
13:37:37
Если что, ф-я есть в бандле beberlei/DoctrineExtensions

Arky
18.11.2017
13:46:32
Помогите нубу с FOSRest. https://symfony.com/doc/master/bundles/FOSRestBundle/5-automatic-route-generation_single-restful-controller.html#define-resource-actions Это все готовые методы и можно больше ничего не делать?)

Антон
18.11.2017
14:40:03
как реализовываете систему прав те кто использут Fosuser
вижу что роли он сохраняет в поле типа json.

Admin
ERROR: S client not available

Danil
18.11.2017
14:44:06
fosuser никак не относится к правам доступа
у тебя 2 основных выбора: ACL и вотеры
читаешь про них и выбираешь, то, то тебе подходит

Антон
18.11.2017
14:45:02
спс. пойду почитаю
странное название voters
голосовальщики?

Danil
18.11.2017
14:46:24
"выбиральщики" скорее

Vladislav
18.11.2017
14:57:32

Danil
18.11.2017
14:58:03
я не знаю, какая там у человека задача
сам фигачу только вотутеры

Антон
18.11.2017
14:58:28
делаю учебный проект. изучаю symfony

Vladislav
18.11.2017
14:58:29
Тож самое

Антон
18.11.2017
14:58:36
на фронте react.

Google

Антон
18.11.2017
14:59:21
вот и пытаюсь аутентификацию соорудить. Кто как делает? пока смотрю на лексик бандл

Danil
18.11.2017
15:01:21
смотри в https://symfony.com/doc/current/security/guard_authentication.html

Vladislav
18.11.2017
15:21:07
Сначала сюда, а потом в лекксик джвт

Антон
18.11.2017
15:28:19
@kopaygorodsky на knp которые платные курсы?

Vladislav
18.11.2017
15:29:13
Не скажу точно, помню видел только, список пунктов мне понравился
Ну тогда читай доку
Разберись с фаерволом, гвардом, провайдерами

Антон
18.11.2017
15:31:12
понял

Danil
18.11.2017
15:45:04
на knp платные только видосы. ниже весь код и текст приведены бесплатно
ну там и цена маленькая. можно потратиться и купить

Andrew
18.11.2017
16:43:40
а еще читать можно.

Sergey
18.11.2017
17:30:27
https://rutracker.org/forum/viewtopic.php?t=5373778
в этом курсе норм про аутентификацию

Arky
18.11.2017
17:33:53
Помогите(
Помогите нубу с FOSRest. https://symfony.com/doc/master/bundles/FOSRestBundle/5-automatic-route-generation_single-restful-controller.html#define-resource-actions Это все готовые методы и можно больше ничего не делать?)

Vladislav
18.11.2017
17:37:51
нет, вообще ничего не надо делать

Arky
18.11.2017
17:38:12