@symfony_php

Страница 100 из 1418
Sergey
10.02.2017
10:10:35
Дмитрий
10.02.2017
10:10:37
все

Sergey
10.02.2017
10:10:49
симфони формы - текущее гавно по памяти ?

Google
Rodion
10.02.2017
10:11:16
не держи в себе!
я просто понимаю, что мы этим ничего не решим)

Sergey
10.02.2017
10:12:36
оба
тогда небольшой икомерс, но со средней логикой для ценников(скидосики, накрутки) всякие регистрации затащит бандлом, бойлерплейт на симфони напишет. а реализация правил бизнес логики покажет как он с ООП умеет работать

Rodion
10.02.2017
10:12:37
лично меня просили написать аналог TinyURL
с "планом работ", тестами. ты же можешь попросить это сделать на Symfony.

не держи в себе!
хотя вот несколько триггеров: CollectionType; несколько EntityType с choices по условию; data-prototype; {%form_theme form _dumbshit_entry_type %} и т.п.)

и чтобы избежать двунаправленных связей сущностей доктрины, пишем свои DTO) да и вообще пишем DTO)

Victor
10.02.2017
11:15:39
Товарищи, подскажите где настроить. У меня сгенерён контроллер с FOS\RestBundle\Controller\Annotations\RouteResource Сущность для которой создано API состоит из двух слов, типа MyEntity. При этом маршруты генерируются в формате /api/myentity/... а мне нужно чтобы было /api/myEntity/... Не могу в доках найти как это сделать.

Sergey
10.02.2017
11:25:54
тут мало кто с fosrest работает

так что лучше загляни в исходники

Victor
10.02.2017
11:28:02
тут мало кто с fosrest работает
А для автоматической генерации API по сущности что удобно использовать?

или это вообще дурной тон?

Victor
10.02.2017
11:29:32
можно типа вручную задать http://symfony.com/doc/current/bundles/FOSRestBundle/7-manual-route-definition.html
Да, но придётся 6 раз это писать. Всмысле это не такм много, но как-то не порядочек

Google
Victor
10.02.2017
11:29:43
для каждого метода

и для каждой сущности это отслеживать

Timur
10.02.2017
11:44:10
http://symfony.com/blog/symfony-demo-1-0-0-released?utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed%3A+symfony%2Fblog+%28Symfony+Blog%29

Ринат
10.02.2017
11:44:51
это демо которая блог?

Roman
10.02.2017
11:47:27
да

Sergey
10.02.2017
11:48:03
или это вообще дурной тон?
хз... зависит от того что тебе надо. Если у тебя есть готовая сущность то как бы... для простой апишки достаточно сериализации/десериализации.

а для сложной генерация не поможет)

у меня был вариант генерить сущности из json схемы запросов и ответов

Victor
10.02.2017
11:50:46
у меня был вариант генерить сущности из json схемы запросов и ответов
я вот этой штукой пользовался https://github.com/voryx/restgeneratorbundle

Sergey
10.02.2017
13:01:30
гляну

не надо все же свой писать

https://github.com/amwmedia/plop - вот например неплохой генератор)

что если на нем мутить?)

Stepan
10.02.2017
13:05:34
Кстати, я тут как-то про лемонрест писал. Есть те, кто экстенсивно его пользовал?

Victor
10.02.2017
13:12:58
что если на нем мутить?)
Выглядит интересно. Поразбираюсь

Sergey
10.02.2017
14:16:54
короч да, буду на plop просто шаблончик круда писать

Timur
10.02.2017
14:27:53
Symfony 2.8: Есть две сущности: Class и School Есть DQL запрос для получения списка классов школы с заданным id: $qb = $repository->createQueryBuilder('class'); $result = $qb->where("class.school = 15"); Теперь, как получить список классов школы с заданным именем? То есть ожидается что то такое (код нерабочий): $qb = $repository->createQueryBuilder('class'); $result = $qb->where("class.school.name = 'adolf_hitler_school' ");

Sergey
10.02.2017
14:28:20
через джоин

Timur
10.02.2017
14:28:36
через джоин
Можешь написать джоин на DQL?

Sergey
10.02.2017
14:28:55
$qb->join('class.school', 'school')->where('school = 1')

Google
Timur
10.02.2017
14:30:01
$qb->join('class.school', 'school')->where('school = 1')
Не понял. Что за school = 1?

Sergey
10.02.2017
14:30:10
исправил

Timur
10.02.2017
14:30:24
исправил
Спасибо, сейчас проверю

исправил
Если не заработает, будешь платить

:D

исправил
Все работает. Прекрасно!

Sergey
10.02.2017
14:36:46
привет, использую FOSRest и JMS, посылаю гет-запрос /api/product/12345 /** * * @Route("/{id}", name="product_detail") * @View() * */ public function detailAction(Product $product) { return $product; } если такой товар есть, он возвращается корректно, если нет ошибка 500 Но если название переменной изменить, как тут: /** * * @Route("/{id}", name="product_detail") * @View() * */ public function detailAction(Product $id) { return $id; } товар если есть все корректно, и если такого нету возвращает верно - 404 Почему так?

Sergey
10.02.2017
14:37:27
ну так в роуте напиши не id, а product

Sergey
10.02.2017
14:38:10
да, так будет тоже работать. Но почему эти названия должны совпадать?

Sergey
10.02.2017
14:39:33
ну а как еще парам конвертер догадается на что ему маппить?

если у тебя будет не 1 параметр, а 3?

Sergey
10.02.2017
14:40:54
а как он догадался, когда ему передаешь id товара который существует?)

Sergey
10.02.2017
14:41:53
ну в целом доки говорят что так можно

http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/converters.html#doctrine-converter

Sergey
10.02.2017
14:43:26
различия только в момент когда передаешь id товара, которого нет. В первом случае он возвращает 500 и говорит что ожидает на вход инстанс продукта, во втором же случае корректно отдает 404

Sergey
10.02.2017
14:44:47
сложно сказать) посмотри дебагером, узнаешь наверняка

Sergey
10.02.2017
15:01:58
короч накину тут

есть проект, есть сущность User с профилями и прочей шляпой. Если смотреть на приложение с точки зрения модулей, выходит что есть модуль юзеров например, и модуль какой-нибудь еще. И по хорошему "какой-нибудь еще модуль" ничего не должен знать о модуле юзеров, только айдишку.

ну то есть если надо отобразить детали пользователя какие-то, модуль пользователей должен предоставлять какой-то способ достать нужные штуки, а у нас будет какой-то сервис который будет доставать нужных юзеров и мэпить их к запросу.

Big_Shark
10.02.2017
15:14:28
@fes0r модули странная штука.

Google
Big_Shark
10.02.2017
15:14:54
@fes0r @Enleur Парни, вы тут говорили что носите с собой ноутбуки, а в каких рюкзаках?

Admin
ERROR: S client not available

Sergey
10.02.2017
15:17:40
ну а у тебя что в других модулях вообще не может использоваться юзер?
в рамках бизнес логики - нет. Для авторизации все данные зашиты в более простую структурку которая тупо десериализуется из JWT

Sergey
10.02.2017
15:18:02
ну так не используй тогда его)

сделай себе отдельный EM и в нем не будет мапинга к юзеру

Sergey
10.02.2017
15:18:28
@fes0r @Enleur Парни, вы тут говорили что носите с собой ноутбуки, а в каких рюкзаках?
раньше был какой-то полар с которым ходил лет 6, весной покупал какой-то еще тупо по картинкам

Sergey
10.02.2017
15:18:29
?

Sergey
10.02.2017
15:18:56
сделай себе отдельный EM и в нем не будет мапинга к юзеру
я повторюсь, я знаю как разделить, я не знаю насколько это усложняет или упрощает жизнь

с точки зрения структуры проекта это дико упрощает жизнь. Это дико снижает связанность, инкапсуляция повышается

Sergey
10.02.2017
15:20:36
@fes0r модули странная штука.
представь что это микросервисы) только... они не как отдельные приложеньки, то есть общаются между собой напрямую)

не по сети и в рамках одного процесса

Big_Shark
10.02.2017
15:22:43
не по сети и в рамках одного процесса
Понимаешь, тут прикол в том что когда они в одном процессе, тут тут постоянно возникает тяга сделать их более связанными.

Sergey
10.02.2017
15:23:50
Понимаешь, тут прикол в том что когда они в одном процессе, тут тут постоянно возникает тяга сделать их более связанными.
да, понимаю. Для этого есть весьма простые анализаторы кода которые следят за тем что бы ты например не юзал сущности одного модуля в другом)

ну то есть вопрос "тяги связать" можно решить различными способами

меня больше интересует насколько тяга развязать обходится дороже. В краткосрочной перспективе кажется что сильно дороже, в долгосрочной же вижу профит

вот ищу людей которые делают почти микросервисы) что бы с изоляцией модулей все было хорошо

Google
Sergey
10.02.2017
15:25:53
ну и чем мне нравится такой подход - если надо сделать что-то очень быстро и ты ошибся при разбиении на модули - ошибку легко исправить и временно решить проблему кастылем

а потом починить планомерно

Rodion
10.02.2017
16:28:21
самый эссеншл ад - это связь "модели - Entity доктрины - формы"

модели и энтити возможно как-то безболезненно развязать, чтобы использовать в формах, например, без введения DTO? была идея сделать статические методы к Entity fromModel() и isValid().

Sergey
10.02.2017
16:30:35
вообще модель и сущность это одно и тоже..

Rodion
10.02.2017
16:31:02
если орудовать формами над энтити, начинается ад

finkel
10.02.2017
16:31:33
Rodion
10.02.2017
16:32:06
я так понимаю, что энтити - это просто отражение модели в persistence-слое. она является отдельной вещью

и предчувствую, что их желательно отвязать

т.е. мб энтити может являться декоратором модели, я хз...

Sergey
10.02.2017
16:36:26
тут можно поспорить
смотря что ты называешь моделью и сущностью. если есть идентификатор у этого куска данных, то это уже сущность

Rodion
10.02.2017
16:36:40
неа, у модели нет id, он ей не нужен

Sergey
10.02.2017
16:36:50
что такое модель тогда?)

Страница 100 из 1418