@symfony_php

Страница 832 из 1418
Urmat
10.04.2018
11:15:13
Ребзя, как выполнить knp_menu_get с указанием глубины, при этом, чтобы дочерние элементы были доступны?

Urmat
10.04.2018
11:23:07
stackoverflow
Спасибо, уже нашел. Ошибка была в билдере

Bohdan
10.04.2018
11:25:11
stackoverflow
работает :D

Google
Andrey
10.04.2018
11:25:12
if (false !== stripos($message, 'ребят')) echo 'stackoverflow';

Dmitriy
10.04.2018
13:04:37
Код как Йода пиши свой)

Konstantin
10.04.2018
13:05:16
за отсутствие фигурных скобочек по пальцам бить

Антон
10.04.2018
13:06:44
я бы по голове сразу бил

Sergey
10.04.2018
13:07:12
с настроенным нормально автоформатом - пхпшторм сам добавит их)

Konstantin
10.04.2018
13:07:44
postfix-completition - открой для себя новый мир

Dmitriy
10.04.2018
13:09:23


мне больше интересно, как ТАКОЕ в прод попасть может

Sergey
10.04.2018
13:09:48
подержи мое пиво...

Andrey
10.04.2018
13:09:55
Что и требовалось доказать

Лучше чатик симфони фор бегинерс замутите . Итак у вас тут обсуждают что угодно, но не фреймворк.

Konstantin
10.04.2018
13:10:26
вот же зануды )

Vladislav
10.04.2018
13:12:24
Google
Vladislav
10.04.2018
13:12:44
писал типа сервис враппер для репозитория

потом долго выпиливал я это

Dmitriy
10.04.2018
13:13:10
дык ошибка) нет такого метода finAll

Vladislav
10.04.2018
13:13:12
на первом проекте и не такое встретишь)

Dmitriy
10.04.2018
13:13:15
че это за метод вообще)

Konstantin
10.04.2018
13:13:29
Vladislav
10.04.2018
13:13:39
а, я думал ты о том что чувак в getList вставил просто findAll

Andrew
10.04.2018
13:15:23
а, я думал ты о том что чувак в getList вставил просто findAll
ну если интерфейс подразумевает наличие имплеметнации getList, то норм :)

Vladislav
10.04.2018
13:15:52
ага, да, был у меня тогда интерфейс...)))

Andrew
10.04.2018
13:17:12
та даже такое лучше чем findAll напрямую

Dmitriy
10.04.2018
13:17:20
ты тогда думал, нахер ваще нужны классы без реализации. ЧТо курил создатель?

Daniil
10.04.2018
13:20:56
Гайс, нид соме хэлп) Крч вагрант поднимаю и надо по nfs примонтировать папку, а она не монтируется

Вадим
10.04.2018
13:21:11
Как грится, чатег помоги ) Где должна происходить валидация сущности на уникальность? в DTO, Service или Repository ?

Daniil
10.04.2018
13:22:04


Вот такая ошибка

Timur
10.04.2018
13:22:40
Вот такая ошибка
А ты Laravel Homestead используй

Daniil
10.04.2018
13:23:21
Там какая разница суть то в удаленной папке которую надо примонтировать)

Vladislav
10.04.2018
13:24:21
хороший скриншот

Daniil
10.04.2018
13:24:29
Какие могут вообще быть траблы с монтирование папок кроме фаервола, или ай пи не тот и прочая дичь, я в комп сетях не силён )

Google
Антон
10.04.2018
13:24:35
ЖВ

Daniil
10.04.2018
13:24:45
хороший скриншот
Это скриншот скриншота?

Timur
10.04.2018
13:25:00
Dmitriy
10.04.2018
13:25:03
Petr
10.04.2018
13:25:09
подскажите, пожалуйста: есть ли возможность в symfony/serializer зарегистрировать NameConverter как сервис, чтобы он применялся в каждом нормалайзере?

Антон
10.04.2018
13:25:35
Laradock используй и не будет проблем

Shmaltorhbooks
10.04.2018
13:25:39
через autowire

Вадим
10.04.2018
13:25:40
Daniil
10.04.2018
13:26:08
Laravel Homestead обладает дополнительной оболочкой.
Просто вагрантфайл со всеми ресурсами уже построен

Вадим
10.04.2018
13:26:30
Я о том, что entity могут пробовать сохранить без репозитория .. и вот тут надо что-то делать

Konstantin
10.04.2018
13:27:39
используй оба варианта

Andrew
10.04.2018
13:28:13
Мне кажется это как-то не красиво )
ну теоретически, ты должен их провалидировать еще на клиенте, всякими ajaxзапросами. А на сущность навешиваешь unique и при флаше опционально ловишь эксепшн

Timur
10.04.2018
13:28:22
Просто вагрантфайл со всеми ресурсами уже построен
И что? Выкинь его) В хоумстеде настройка проще некуда, вот так примерно: ip: 192.168.10.10 memory: 2048 cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: 'C:\xampp\htdocs\451gradus' to: /home/vagrant/code type: "nfs" sites: - map: sitename.local to: /home/vagrant/code/public type: "symfony4" databases: - dbName name: sitename hostname: sitename

Вадим
10.04.2018
13:29:52
ну теоретически, ты должен их провалидировать еще на клиенте, всякими ajaxзапросами. А на сущность навешиваешь unique и при флаше опционально ловишь эксепшн
Ну проверка тогда ложится на базу ... по сути у меня поле не уникально в самой таблице, но сама сущность подразумевает что поле будет уникально. Вобщем мне надо не базой валидировать, а где-то в коде, до момента записи

Konstantin
10.04.2018
13:30:04
ну теоретически, ты должен их провалидировать еще на клиенте, всякими ajaxзапросами. А на сущность навешиваешь unique и при флаше опционально ловишь эксепшн
у меня был точ такой же вопрос тут ранее. да, типа как можно и так делать. но тут есть пара подводных камней: 1. связаные файлы к сущности - если они уже закинуты на диск - кто их будет удалять? (предлагали крон задачу на чистку, как то не особо нравится) 2. при table inheritance уникальные констрейнты не работают (эта баг). )))))

так шта самый простой выход - if( $repository->exists($entity)) throw UniqueException

Вадим
10.04.2018
13:31:45
так шта самый простой выход - if( $repository->exists($entity)) throw UniqueException
А если сущность кто-то в коде создаст без репы, и сохранит, то она будет не валидна

Konstantin
10.04.2018
13:32:07
"ктото" это гремлины что ли?

Google
Petr
10.04.2018
13:32:12
В симфони все что хочешь можно сервисом сделать
Сервисом-то я сделать могу, а как заставить этот нейм конвертер применяться во всех нормалайзерах? В доке волшебного тега я не увидел. Полагаю, что я что-то делаю не так

Icewild
10.04.2018
13:32:21
а делать создание сущности в одном месте, в фабрике например

Konstantin
10.04.2018
13:32:23
это точно такой же программист только другой. надо просто объяснять заранее где то на видном месте

Andrew
10.04.2018
13:32:30
ой много тредов

пошел я ))

Konstantin
10.04.2018
13:34:33
А если сущность кто-то в коде создаст без репы, и сохранит, то она будет не валидна
писал же используй оба подхода. т.е. ставь уникальный констрейнт. да, вылетит исключение, правда это будет уже "в конце" а не тогда когда надо действительно проверить. но так лучше, т.к. не попадет в базу вторая запись

Timur
10.04.2018
13:35:27
Сервисом-то я сделать могу, а как заставить этот нейм конвертер применяться во всех нормалайзерах? В доке волшебного тега я не увидел. Полагаю, что я что-то делаю не так
Я с твоей задачей не знаком, но у меня для каждой сущности свой нормалайзер зарегистрирован. Каждый раз, когда я вызываю $this->serializer->serialize($entity, 'json') Сериалайзер определяет по типу переданной в него сущности, какой нормалайзер вызвать. Передает этому нормалайзеру эту сущность, а нормалайзер должен лишь вернуть массив.

А массив ты возвращаешь какой хочешь, там можешь и определить имена ключей

Petr
10.04.2018
13:43:52
Timur
10.04.2018
13:45:29
мне надо чтобы если ObjectNormalizer встречал поле с определенным именем, то чтобы он это поле переименовывал. мне надо создать свой ObjectNormalizer, отнаследовавшись от оригинального, и применять в нем свой нейм конвертер?
Я ж говорю, ты хочешь автоматизировать процесс, то бишь процесс конвертации имен. Я так не делал и сейчас сразу ответить не могу, поэтому предложил свой вариант, не автоматизированный, где ты к каждой сущности указываешь список имен вручную, понимаешь?

Petr
10.04.2018
13:49:21
Ты хочешь один нормалайзер, на все сущности, я предлагаю по нормалайзеру на сущность
у меня не сущности, а схемы, построенные на основе сущностей. все схемы сериализуются как валидные объекты по спеке HAL JSON. у этих объектов должны быть поля _links и _embedded, и вот задача сделать так, чтобы геттер getHalLinks() сериализовался как _links

Petr
10.04.2018
13:50:06
ага

Timur
10.04.2018
13:50:18
Сейчас я покажу, как у меня устроено

Google
Timur
10.04.2018
13:54:32
ага
Вот мои 4 нормалайзера, для 4 сущностей. Ты аналогично для своих схем создаешь нормалайзеры.





Симфони 4 автоматом делает все классы находящиеся в определенных папках сервисами. Стало быть и мои нормалайзеры автоматом становятся сервисами. Но этого не достаточно, симфони еще должна знать, что это не просто какие то сервисы, а что это нормалайзеры. Для этого в файле services.yaml указываешь следующий блок:



Именно благодаря методу supportsNormalization симфони определяет, какой из нормалайзеров к какому объекту (схеме в твоем случае) применить

А в контроллере ты просто пишешь $this->serializer->serialize($entity, 'json') Вместо сущности подставь свой объект-схему, сериалайзер вернет массив, всё просто. Конечно сериалайзер надо сначала вытащить из контейнера сервисов. Благо это просто: $this->get('serializer')

Вот собственно и все. Вопросы?

Dmitriy
10.04.2018
14:02:41
сложна

Timur
10.04.2018
14:02:46
И да, не обязательно создавать отдельные нормалайзеры для каждого объекта, можно и один, но это дело поставленной задачи или просто дело вкуса

сложна
Сложна? ?

Dmitriy
10.04.2018
14:03:04
еп

Timur
10.04.2018
14:03:15
сложна
Пару строк кода написать для тебя "сложна"?

Dmitriy
10.04.2018
14:03:31
не подьемный труд)

я не про пару строк кода

а про то,для чего всё это используется

Petr
10.04.2018
14:04:07
Вот собственно и все. Вопросы?
спасибо, вопросов нет. взглянув на твою реализацию, появилась пара идей, которые попробую реализовать

Timur
10.04.2018
14:04:46
а про то,для чего всё это используется
Ну у меня используется для API, сущности сериализируются в JSON и возвращаются по запросу.

Dmitriy
10.04.2018
14:04:49
во так доходчивее

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