
Елнур
07.04.2018
20:49:06
и там же валидация
зачастую, для создания и редактирования могут быть разные валидации

Pavel
07.04.2018
20:49:42
да он не про э то спрашивал

Елнур
07.04.2018
20:50:01

Google

Елнур
07.04.2018
20:50:08
поэтому удалил свои сообщения =)

Borislav
07.04.2018
20:50:52
А о чем? Что Вы подумали? Возможно я неправильно задал вопрос, но именно это меня и интересует

Valentin
07.04.2018
20:53:04
Короче как можно было догадаться - бест практис нету, просто делай как удобно и как требует логика

Елнур
07.04.2018
20:53:50
лично я думаю что удобнее создавать разные формы для разных действии
если создавать одну форму, придется извращаться ивент листенерами и configureResolver-ами

Borislav
07.04.2018
20:54:45
Я занимаю поддержкой крупного проекта на Kohana, там для добавления и редактирования одной и той же сущности используется абсолютно разные подходы.
Честно говоря не предстваляю как это можно было бы сделать с использованием одной формы.

Konstantin
07.04.2018
20:55:58
формы в основном используют чтобы под капотом обновлять твою сущность новыми данными и валидацию делать за тебя
можешь и сам все это делать и формы не нужны будут

Valentin
07.04.2018
20:56:33
Компонент форм очень большой, много фич и настроек, надо доку почитать, 100% можно сделать в одной форме) но надо ли)

Pavel
07.04.2018
20:57:18

Konstantin
07.04.2018
20:57:58
ну я на них начал апи делать, ага. потом добавил слой дтошек и выбросил формы

Pavel
07.04.2018
20:58:19

Google

Konstantin
07.04.2018
20:58:20
валидация идет на самом дто до того момента когда он даже в контроллер подъехал
правила в аннотациях, удобно
да и мантра "сущность всегда валидна" которой тут уши прожужжали вроде как соблюдена

Vladislav
07.04.2018
20:59:11
а как ты данные реквеста на дто мапишь?)

Konstantin
07.04.2018
20:59:39
из реквеста на дто - этим занимается fos_rest.body_converter или как то так он называется
paramconverter кароч
в контроллер приходит дто + ошибки валидации. ошибки чекаются - если есть - выбрасывается исключение

Pavel
07.04.2018
21:01:15

Konstantin
07.04.2018
21:01:33
ConstraintViolationListInterface $validationErrors
их готовит парам конвертер по правилам валидации самого дто, заранее

Pavel
07.04.2018
21:02:00
тоже так делою

Konstantin
07.04.2018
21:02:15
ну, мне такое очень понравилось вот и использую

Vladislav
07.04.2018
21:02:35
у тебя маппер должен быть какой-то
ну вот пришел реквест lol :{name: Stepan, email: lol@loo.com}, я хочу на выходе получить DTO как ты сказал
UserDtoblabla

Konstantin
07.04.2018
21:05:30
а, дто в энтити ручками мапится через отдельный маппер

Pavel
07.04.2018
21:06:22
ручками

Vladislav
07.04.2018
21:06:29
ты не понял.
Request -> DTO -> Entity

Google

Pavel
07.04.2018
21:06:30
???????????????

Vladislav
07.04.2018
21:06:32
так у тебя?

Konstantin
07.04.2018
21:06:42
да

Vladislav
07.04.2018
21:06:47
мне интересно как ты с реквеста данные в дто пихаешь
вот есть у тебя обьект Request
че ты с ним делаешь?

Konstantin
07.04.2018
21:07:04
нет у меня объекта реквест
я с ним ничего не делаю, мне в контроллер сразу дто приезжает
/**
* @Rest\Post("/categories", options = { "utf8": true })
* @ParamConverter("categoryRequest", converter="fos_rest.request_body")
*/
public function postCategoriesAction( CreateCategoryRequest $categoryRequest,
ConstraintViolationListInterface $validationErrors )

Максим
07.04.2018
22:14:18
Помогите пожалуйста ! Как добавить 2 бокса? Выводит только 1 бокс . Нужен связанный вариант выборки $builder
->add('state', RadioType::class, array(
'label' => 'Женщина',
'required' => false
))
->add('state', RadioType::class, array(
'label' => 'Мужчина',
'required' => false
));
}

Andrew
07.04.2018
22:21:19

Максим
07.04.2018
22:23:08

Andrew
07.04.2018
22:25:34

Максим
07.04.2018
22:31:07

Andrew
07.04.2018
22:42:56

Urmat
08.04.2018
07:48:18
Парни, что значит в доктрине DiscriminatorColumn? И когда его использовать? В проекте кто-nj выставил пустую аннотацию в классе. А мне стало интересно зачем и для чего его использовать?
/**
* Class Reservation
* @package TicketBundle\Entity
* @ORM\Table(name="reservation")
* @ORM\Entity(repositoryClass="TicketBundle\Repository\ReservationRepository")
* @ORM\DiscriminatorColumn()
*/
class Reservation {

Alexandr
08.04.2018
07:51:42
Чтобы понять в объект какого именно класса гидрировать данные из базы

Urmat
08.04.2018
08:04:42

Google

Alexandr
08.04.2018
08:05:11
Или скопипастил откуда-то не разбираясь)

Urmat
08.04.2018
08:05:41

Valentin
08.04.2018
09:53:48
Вопрос к тем кто юзает postgres 9.6+
Как вы удаляете бд при тестировании? У меня сейчас ошибка мол нельзя дропнуть бд которая сейчас используется, получается мне изначально надо подключиться к другой бд, дропнуть тестовую, потом переподключиться и уже создавать тестовую бд? Только как собственно это сделать не очень понимаю

Alexandr
08.04.2018
09:54:29
А зачем удалять бд при тестировании?

Valentin
08.04.2018
09:55:15
Ну что бы каждое тестирование проводилось с чистой бд

Alexandr
08.04.2018
09:55:42
Автотесты что ли?

Valentin
08.04.2018
09:55:47
Т.е протестировал создание юзера - что бы запустил тест ещё раз и он опять прошёл

f4rt~
08.04.2018
09:56:07

Valentin
08.04.2018
09:56:18
А если не пересоздавать бд тест будет крашиться

f4rt~
08.04.2018
09:56:20
обычно такие манипуляции делают в каком-то "basetestcas'e'
от которого тесты и наследуются

Dinar
08.04.2018
09:56:29
https://github.com/dmaicher/doctrine-test-bundle
Вот это юзай

f4rt~
08.04.2018
09:56:32
хотя это то еще зло

Alexandr
08.04.2018
09:56:36
У доктрины есть purger который умеет все данные из базы удалять

Vladislav
08.04.2018
09:56:41
так он спрашивает как бд удалять, а не как тесты сетапить

Dmitry
08.04.2018
09:56:59

Valentin
08.04.2018
09:57:21
Проблема в том что я пытаюсь бд удалить ( в кастомном бутстрапе) а оно пишет что не может так как база используется

f4rt~
08.04.2018
09:57:21

Valentin
08.04.2018
09:58:12

Dinar
08.04.2018
09:59:05

Google

Vladislav
08.04.2018
09:59:16
я бы на твоем месте сделал дамп фикстур в .sql и перезагружал его вместо bin/console d:s:c, fixtures:load
будет быстрее в раза два )

Valentin
08.04.2018
10:00:25

Dinar
08.04.2018
10:00:47
Это девелоперный бандл. Он очень хороший. И в стандартной сборке симфони он стоит
А на проде его не будет.

Alexandr
08.04.2018
10:01:14

Dinar
08.04.2018
10:02:30
Этот чувак, кстати, мой СТО :)

f4rt~
08.04.2018
10:11:08

Dinar
08.04.2018
10:12:00
Это не его лицо. :)

Вадим Натаркин
08.04.2018
13:49:28
Ребята, что сейчас модно использовать для dev окружение на маке? кто что пользует? Docker?

Salavat
08.04.2018
14:05:16
Докер?

Sergey
08.04.2018
14:11:17

Вадим Натаркин
08.04.2018
14:17:31
@fes0r меня только dev интересует. Ладно с port mapping понятно, а что со slow mounted volumes, они по прежнему медленные?

Sergey
08.04.2018
14:25:19
суть docker в унификации окружения между серверами и dev средой
что бы инфраструктура была максимально приближена к продакшену везде, что на твоем маке что на стэйнджинге для клиента/qa
если у тебя такой задачи не стоит - проще просто поднять php локально, можно даже просто юзать php -S и не морочать голову