
Sergey
07.10.2017
09:30:31
приходишь и тесты тыкаешь

Arky
07.10.2017
09:32:06

Sergey
07.10.2017
09:33:26

Google

Sergey
07.10.2017
09:34:28
и они быстро устаревают) только сдал на 2ю симфони, а уже 3я вышла, потом 4я)

Dmitry
07.10.2017
09:35:17

Arky
07.10.2017
09:37:59
Значит это https://habrahabr.ru/post/301760/ еще актуально мне для обучения 3.3 версии?)

Dmitry
07.10.2017
09:39:53

Arky
07.10.2017
09:48:38
Значит еще актуально, спасибо)

Sergey
07.10.2017
09:49:32

Dmitry
07.10.2017
09:51:54
Значит еще актуально, спасибо)
если только начинаешь советую прочитать, оч хорошая книга позволяющая разобраться в принципе работы фреймворка. В русском переводе тоже можно найти
https://matthiasnoback.nl/book/a-year-with-symfony/

Arky
07.10.2017
09:52:55
А какой лучше роутинг использовать, через аннотации или yml?)

Dmitry
07.10.2017
11:17:41

Ad
07.10.2017
11:18:04
Не поймите неправильно

Sergey
07.10.2017
11:22:35

Google

Sergey
07.10.2017
11:23:01
имхо наилучший вариант - комбинация из yaml + аннотаций
yaml декрарируют модули, внутри модуля аннотации
если модуль у нас один (блог) - то... сам понимаешь

Ad
07.10.2017
11:23:32

Sergey
07.10.2017
11:23:43

Ad
07.10.2017
11:24:34
а чем путаница то?)
В том что я тупой и не знаю как настроить шторм для подсказок. Поэтому я смотрю в routing.xml

Dmitry
07.10.2017
11:25:11
да и менять потом проще

Ad
07.10.2017
11:26:10
Насчет расширения могу путать, семейный скандал был, и я горе заливаю.
Но yaml

Sergey
07.10.2017
11:27:06
на самом деле разницы вообще нет. ни удобнее ни быстрее... просто используйте что нравится команде

Dmitry
07.10.2017
11:29:22

Ad
07.10.2017
11:29:22
Вот и все всегда так. Я поддерживаю магазины на маженте 1, и приходится временами грепать

Sergey
07.10.2017
11:29:52
@Route('/users', methods={'POST'})
как по мне удобненько

Dmitry
07.10.2017
11:31:29
как по мне удобненько
наверное дело привычки, я в основном с компонентами работаю. Поэтому и в фреймворке юзаю обычный свой workflow

Мурад
07.10.2017
12:35:48
Кто знаком с библиотекой enqueue.
Допустим у меня есть разные обработчики, каждый подписан на свой топик (ImageProcessor, EventProcessor и т.д.)
И я хочу запустить 10 процессов которые будут обрабатывать сообщения топика images и 5 процессов топика events.
В RabbitMqBundle можно указать тип запускаемого консьюмера и в супервизоре указать количество для каждого в одтельности:
./bin/console rabbitmq:consumer images
./bin/console rabbitmq:consumer events
Но в enqueue не нашел такого в доках.
Там запускается один consumer (./bin/console enqueue:consume), который слушает все сообщения и роутит на нужные обработчики в зависимости от топика.

Google

Timur
07.10.2017
12:53:41
"не получается" плохое описание проблемы
Что тут непонятного то может быть? Http basic authentication. Там что, много вариантов что ли? Вбиваю логин, вбиваю пароль, жму ок - не логинится, окно снова появляется с пустыми полями и так до бесконечности
Народ, что то не получается у меня залогиниться с помощью простейшего http модального окна. Если ставлю провайдера in_memory и алгоритм шифрования plaintext, то логинится без проблем, а вот из ДБ получить юзера не получается. Для простоты тоже сделал алгоритм plaintext. Сущность User имплементирует UserInterface. Открыть пытаюсь 127.0.0.1:8000 (server:run).
В чем может быть проблема?

Valentin
07.10.2017
13:22:44

Timur
07.10.2017
13:23:16

Valentin
07.10.2017
13:27:13
Потому что вот: https://github.com/symfony/symfony/issues/15469

Timur
07.10.2017
13:37:43

Valentin
07.10.2017
13:39:03
Ну раз в db провайдере проблема, то почему бы не посмотреть, что пишет в лог доктрина

Алексей
07.10.2017
13:56:21
А еще xdebug.

vlad
07.10.2017
14:27:26
ребят, всем привет

Arky
07.10.2017
14:27:31
Подскажите пожалуйста, как передать объект с данными из бд в шаблонизатор и отобразить данные?

vlad
07.10.2017
14:27:32
как лучше вызвать команду из контроллера?
ребят
вообще, кто-нибудь может подсказать, как сделать это корректно с точки зрения mvc?
у меня была написана команда, порядка 400 строк
сейчас её мальца пришлось модифицировать
и во вьюхе теперь есть input, куда вводится число, и затем это число нужно передать на вход команде
как это сделать, чтобы не писать костыли?
костылями когда-то делал:
на js выцеплял то, что ввели и ajax кидал на action в контроллёре
который вызывал напрямую команду


Timur
07.10.2017
15:37:32
Ну раз в db провайдере проблема, то почему бы не посмотреть, что пишет в лог доктрина
Вот что пишется в лог:
[2017-10-07 17:31:07] security.INFO: Basic authentication Authorization header found for user. {"username":"admin"} []
[2017-10-07 17:31:07] doctrine.DEBUG: SELECT t0.id AS id_1, t0.username AS username_2, t0.firstname AS firstname_3, t0.lastname AS lastname_4, t0.gender AS gender_5, t0.password AS password_6, t0.email AS email_7, t0.created_at AS created_at_8, t0.updated_at AS updated_at_9, t0.enabled AS enabled_10, t0.folders AS folders_11, t0.image_name AS image_name_12 FROM user t0 WHERE t0.username = ? LIMIT 1 ["admin"] []
[2017-10-07 17:31:07] security.INFO: Basic authentication failed for user. {"username":"admin","exception":"[object] (Symfony\\Component\\Security\\Core\\Exception\\AuthenticationServiceException(code: 0): Notice: unserialize(): Error at offset 0 of 2 bytes at C:\\xampp\\htdocs\\451s\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Security\\Core\\Authentication\\Provider\\DaoAuthenticationProvider.php:94, Symfony\\Component\\Debug\\Exception\\ContextErrorException(code: 0): Notice: unserialize(): Error at offset 0 of 2 bytes at C:\\xampp\\htdocs\\451s\\vendor\\doctrine\\dbal\\lib\\Doctrine\\DBAL\\Types\\ArrayType.php:58)"} []


Valentin
07.10.2017
15:47:15
> Notice: unserialize(): Error
Это, в общем, ответ на вопрос что не так
Время проверить имплементацию Serializable у User-класса

Timur
07.10.2017
16:00:58

Google

Valentin
07.10.2017
16:01:54

Timur
07.10.2017
16:02:19

Valentin
07.10.2017
16:03:05
Это хороший вопрос, потому что от выбранного места хранения
Но вообще если ты не менял ничего в этом плане, то вроде в var/sessions они лежат в свежем Симфони

Timur
07.10.2017
16:40:16

Valentin
07.10.2017
16:42:36
Это набор данных листнера https://github.com/symfony/security/blob/master/Http/Firewall/BasicAuthenticationListener.php#L82

Sergey
07.10.2017
22:19:30
накину немного. Появилась немного безумная идея - генерировать DTO для сущностей (для выборок на чтение) и сделать кастомый гидратор который позволяет мэпить данные любых запросов адекватных для сущностей на эти самые DTO
основная цель - полностью разделить код для записи и чтения и избавиться от ненужных геттеров

Admin
ERROR: S client not available

Artur
07.10.2017
22:22:58
аха новая
прт )

Sergey
07.10.2017
22:23:19
ну не то что бы новая... но что думаете?

Artur
07.10.2017
22:23:59
а по русски если? )

Sergey
07.10.2017
22:24:29
наброски идеи мы как-то с @mkusher обсуждали пол года назад

Artur
07.10.2017
22:24:31
накинь прмиер чтоль

Sergey
07.10.2017
22:24:55
ну блин, представь что у тебя есть сущность, и ты делаешь запрос, но возвращается тебе инстанс UserDTO а не User

Artur
07.10.2017
22:24:59
ты хочешь у dto дёргать что-то?
типа дай мне связанный список?

Sergey
07.10.2017
22:25:39
тип того, что бы данные не попадали в UoW, что бы весь стэйт был как бы доступен...

Artur
07.10.2017
22:25:39

Sergey
07.10.2017
22:25:59
нет, data transfer object, тупая структура данных которая ничего не умеет и тупо хранит данные

Google

Artur
07.10.2017
22:26:25
ну вот я и сказал
я пока вижу что ты говоришь "нахрен актив рэкорд"
но не понял что ты хочешь
типа чтобы атвоматом подсасывался типаж?
т.е. UserDTO генерировался бы автоматически как класс и его бы возвращало?
т.е. чтобы была постоянная явная мета-структура?
" позволяет мэпить данные любых запросов" - не совсем понятно. папить запросы НА дто или при запросе когда это дто возвращается(вроде последнее сначала подумал что перво(
в моём представлении на акив рекордс это делается наоборот
вся магия и запросы хранятся не в модели(DAO - DbAccessObject) и от него возвращается DTO.
но да. если ДТО по факту обвешан активрекордом, трейтами, схемами авторизхаций не оч круто
но для такого подхода на лету на это нет времени, а значит мета(прото) надо генерировать или писать(а от него генерировать код, в т.ч. миграции) заранее


Sergey
07.10.2017
22:35:47
ммм
чет ты усложняешь
у меня есть ORM
которая делает мне удобным запись и работу с данными
но для списочков и т.д. мне оно не надо
мне надо вместо сущности пачка данных желательно с сохранением структуры и типов

Artur
07.10.2017
22:36:45
ну так 1 объект может иметь $user->getSubscribes()

Sergey
07.10.2017
22:37:13
варианта тут два:
- использовать помимо doctrine/orm какую-нибудь легковесную active record
- мэппер кастомный который не на сущности будет результат мэпить а на схожие по структуре dto-хи

Artur
07.10.2017
22:37:25
хотя с другйо стороны можно сделать на UserDTO->getObject()