@symfony_php

Страница 827 из 1418
Елнур
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% можно сделать в одной форме) но надо ли)

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

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 кароч

в контроллер приходит дто + ошибки валидации. ошибки чекаются - если есть - выбрасывается исключение

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
paramconverter кароч
он не мапит все поля в обьект жи

у тебя маппер должен быть какой-то

ну вот пришел реквест 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 )); }

Максим
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
Так я и спрашиваю , потому что не знаю как это сделать)))
я там линку на документацию скинул выше. Хочешь радио селект — юзаешь selecttype и expanded=true/multiple=false

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
Парни, что значит в доктрине DiscriminatorColumn? И когда его использовать? В проекте кто-nj выставил пустую аннотацию в классе. А мне стало интересно зачем и для чего его использовать?
Используется при наследовании, обычно строковое поле с константами для каждого класса, которые хранится в этой таблице

Чтобы понять в объект какого именно класса гидрировать данные из базы

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
Т.е протестировал создание юзера - что бы запустил тест ещё раз и он опять прошёл

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
так он спрашивает как бд удалять, а не как тесты сетапить
у нас бандл выше и в сетапе прописанны комманды доктриновские что бы дропнуть schema и создать потом и после фикстуры

Valentin
08.04.2018
09:58:12
У доктрины есть purger который умеет все данные из базы удалять
Возможно подойдёт, сейчас погуглю, спасибо

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
Докер?

Вадим Натаркин
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 и не морочать голову

@fes0r меня только dev интересует. Ладно с port mapping понятно, а что со slow mounted volumes, они по прежнему медленные?
что с port mapping понятно? nginx-proxy и т.п. и тебе не нужен port mapping как таковой. по поводу mounded volumes - NFS или docker-sync

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