
Алексей
13.01.2017
09:40:51
Вообще, если набрать в гугле "Symfony Settings Bundle" - вылезает всякое разное:
https://github.com/dmishh/SettingsBundle
https://github.com/craue/CraueConfigBundle
И т.п.

Timur
13.01.2017
09:41:30
А какой use case у хранения конфигов в БД таким образом? Можно описать?

Алексей
13.01.2017
09:42:08
Ну, видимо, выделение каких-то настроек, которые зависят не от среды и которые можно более-менее безопасно дать администратору сайта не пуская его в шелл сервера.

Dima
13.01.2017
15:39:45
Уважаемые знатоки, а подскажите, есть ли у твига фильтр, который бы делал что-то наподобии :
{{ verylongstring|transfer(4) }}
Output:
"very
long
strin
g"
Или проще макрос написать ?

Google

Алексей
13.01.2017
15:50:36
Можно написать фильтр для twig. Это просто.

Sergey
14.01.2017
09:19:24
привет
кто использует всю мощь symfony плагина для phpstorm и php annotations? в одном видео нашел что можно это сделать. но ничего не получается
Добавляя аннотацию @Route (php annotations) добавляет use ...
сейчас при добавлении перед методом аннотации добавляется @return Response к примеру...

Timur
14.01.2017
09:23:31
Сейчас посмотрю свои плагины.
У меня это работает.

Sergey
14.01.2017
09:23:51
тоесть прописывает сразу маршрут?
https://knpuniversity.com/screencast/symfony/first-page#play
вот где увидел

Timur
14.01.2017
09:24:30
Вроде вот этот плагин.

Google

Timur
14.01.2017
09:24:39
PHP Annotations.
Ещё советую PHP Inspections.

Sergey
14.01.2017
09:25:32
а какая версия плагина symfony?
всё также

Timur
14.01.2017
09:26:51
Гм, ну странно.

Sergey
14.01.2017
09:26:56
А в php annotations добавлял сам что-то?

Timur
14.01.2017
09:27:20
Да нет, просто поставил вот это всё, и все аннотации в Symfony 3.* сами заработали.
IDE сама добавляет use'ы нужные, что тебе и требуется.
PhpStorm 2016.2.2
Build #PS-162.2380.11, built on October 24, 2016
Licensed to Timur Ruziev
Subscription is active until February 25, 2017
JRE: 1.8.0_111-b14 amd64
JVM: Java HotSpot(TM) 64-Bit Server VM by Oracle Corporation

Sergey
14.01.2017
09:30:38
так так, а config/routing.yml надо править, если новая страница и проч?
Или только если контроллер отдельный?
Что-то я запутался) кстати обновился symfony плагин

Yuriy
14.01.2017
09:50:41
всем привет,
есть сущьность содержит 5 полей, 2 из них связи с другой таблицей, в контролере мне извесны ключи которые нужно записать в поля со связями
вопрос как правильно построить фому чтобы одним сохранением записать всю сущьность в БД ?
можно хотябы пример кода где есть подобная реализация,
спасибо

Sergey
14.01.2017
20:59:18

Timur
14.01.2017
21:00:33

Rodion
15.01.2017
15:31:47
/**
* @Route("/$PATH$", name="$ROUTE_NAME$")
*/
public function $NAME$Action()
{
$END$
}

Sergey
15.01.2017
18:46:22
я все ж делаю отдельно лайв темплейт для аннотаций и для методов юзаю просто pubf

finkel
15.01.2017
22:38:14
хм, а можно как-то коллекцию (collection) в форме заполнить данными из запроса или массива при объявлении типа? Или данные обязательно надо передавать через форм билдер?

Google

Aleksandr
15.01.2017
23:14:41
ну передай их в тип
в чем проблема?

finkel
16.01.2017
05:36:27
в чем проблема?
есть 2 типа, MyFormType, в нем я описываю свою форму и хочу н-ое количество раз использовать второй тип - MyCustomType, в котором одно текстовое поле и чекбокс.
Как я понял, для этого можно добавить тип collection в MyFormType, с переданным в него MyCustomType, но я не нашел как передать в коллекцию данные, что-бы на их основе отрисовать н-ое количество раз MyCustomType.

Дмитрий
16.01.2017
10:32:34
Ребята привет,
Подскажите, что может быть.
Перенес БД на другой сервер. В parametrs.yml указал его IP.
Консольные команды работают с новой БД, а вот если пытаюсь открыть страничку в браузере получаю в ответ An error occurred.
В логах nginx ничего нет.
Переключаю на старую базу - все работает.
Если ошибка с подключением к БД, то хотя app_dev должен быть что нибудь сообщить.

Daniel
16.01.2017
10:33:14
Сделай так, чтобы в логах было))

Rodion
16.01.2017
10:33:21
кеш?

Дмитрий
16.01.2017
10:33:29
кэш чистил

Daniel
16.01.2017
10:35:02
Мб в новую базу не выгрузил структуру бд?

Дмитрий
16.01.2017
10:36:23
???
все таблицы есть, консольная команда получает данные из этой БД

Rodion
16.01.2017
10:37:08
app_dev совсем ниче не сообщает?

Дмитрий
16.01.2017
10:37:40
вообще ничего
на странице только сообщение от nginx
An error occurred.
Sorry, the page you are looking for is currently unavailable.
Please try again later.
If you are the system administrator of this resource then you should check the error log for details.
Faithfully yours, nginx.

Daniel
16.01.2017
10:39:16
Это точно app_dev?

Daniel
16.01.2017
10:39:21
Включи дебаг и все

Дмитрий
16.01.2017
10:42:34
точно app_dev и дебаг включен
если ставлю IP старой базы, то все работает

Rodion
16.01.2017
10:42:55
я бы смотрел конфиг nginx
К.О.


Dima
16.01.2017
15:37:22
Добрый вечер, доки и стаковер не спасают.
Засим прошу совета тут. Касательно collectionType повсеместно разбираются случаи, где на фронтэнде добавляют что-то новое через например "allow_add".
У меня же ситуация обратная, хочу закачать данные в этот тип формы со стороны бэкэнда, и предоставить редактирование закачанных данных (объектов/сущностей) до сабмита.
В кратце задумка такова, что.
1) получаю csv-таблицу, создаю объекты из её данных (n рядов csv файла = n новых объектов)
2) заворачиваю каждый объект в форму, где редактируемые пропертис представлены input=text. Заворачиваю вот так например : $this->createForm(MyTypeToBePartOfCollection::class, $entityFilledByCSV);
3) сгружаю все формы в одну, где есть 1 тип - collectionType.
4) вывожу таблицу с n рядами-объектами, где каждое поле - редактируемое property объекта. Имею n рядов и 1 кнопку, которая спасёт, сабмит и сохранит.
Вопрос - как сгрузить формы с объектами в одну глобальную, где 1 поле collectionType ? Наподобие $this->createForm(MyTypeToBePartOfCollection::class, $entityFilledByCSV);
Помогите, прошу.


Алексей
16.01.2017
15:41:09
Добрый вечер, доки и стаковер не спасают.
Засим прошу совета тут. Касательно collectionType повсеместно разбираются случаи, где на фронтэнде добавляют что-то новое через например "allow_add".
У меня же ситуация обратная, хочу закачать данные в этот тип формы со стороны бэкэнда, и предоставить редактирование закачанных данных (объектов/сущностей) до сабмита.
В кратце задумка такова, что.
1) получаю csv-таблицу, создаю объекты из её данных (n рядов csv файла = n новых объектов)
2) заворачиваю каждый объект в форму, где редактируемые пропертис представлены input=text. Заворачиваю вот так например : $this->createForm(MyTypeToBePartOfCollection::class, $entityFilledByCSV);
3) сгружаю все формы в одну, где есть 1 тип - collectionType.
4) вывожу таблицу с n рядами-объектами, где каждое поле - редактируемое property объекта. Имею n рядов и 1 кнопку, которая спасёт, сабмит и сохранит.
Вопрос - как сгрузить формы с объектами в одну глобальную, где 1 поле collectionType ? Наподобие $this->createForm(MyTypeToBePartOfCollection::class, $entityFilledByCSV);
Помогите, прошу.
2. Зачем заворачивать каждый объект в форму? Все объекты кладутся в поле-коллекцию одного объекта, который уже и скармливается форме.
Точнее сложно сказать, т.к. задача неясна.
Но тебе, скорее всего, будет полезно посмотреть как работают с коллекциями и как в качестве поля формы использовать другую форму (чтобы редактировать элементы коллекции).


Dima
16.01.2017
16:01:38
2. Зачем заворачивать каждый объект в форму? Все объекты кладутся в поле-коллекцию одного объекта, который уже и скармливается форме.
Точнее сложно сказать, т.к. задача неясна.
Но тебе, скорее всего, будет полезно посмотреть как работают с коллекциями и как в качестве поля формы использовать другую форму (чтобы редактировать элементы коллекции).
Каждый объект заворачивается в форму, так как его проперти должны быть представленны в виде редактируемых колонок. Читал про Embed Forms, вынес, что много форм встроить в одну - это запросто. Сейчас вот голову чешу что делать)) Ну то есть вот в примерах есть такое, что есть у меня форма "добавить статью", а в ней embed form "добавить тэг". И я могу жать например "+тэг" и добавить до бесконечности тэгов к статье. У меня же ситуация наоборот - тэги у меня уже готовые на бэкенде, только их разное количество всё время. Сама статья мне н@x не нужна, а нужно вывести именно их, тэгов родненьких, проверить их правильность с возможностью редактирования и сохранить. Таким образом чтобы такое провернуть, мне нужна "подставная" статья, как объект, который я буду форме скармливать ?

Google

Алексей
16.01.2017
16:03:08
Каждый объект заворачивается в форму, так как его проперти должны быть представленны в виде редактируемых колонок. Читал про Embed Forms, вынес, что много форм встроить в одну - это запросто. Сейчас вот голову чешу что делать)) Ну то есть вот в примерах есть такое, что есть у меня форма "добавить статью", а в ней embed form "добавить тэг". И я могу жать например "+тэг" и добавить до бесконечности тэгов к статье. У меня же ситуация наоборот - тэги у меня уже готовые на бэкенде, только их разное количество всё время. Сама статья мне н@x не нужна, а нужно вывести именно их, тэгов родненьких, проверить их правильность с возможностью редактирования и сохранить. Таким образом чтобы такое провернуть, мне нужна "подставная" статья, как объект, который я буду форме скармливать ?
А в чём проблема-то сейчас? Что не работает?

finkel
16.01.2017
16:04:39
будь проклят этот коллекшен тайп)

Dima
16.01.2017
16:04:59
А в чём проблема-то сейчас? Что не работает?
в том способе, который я описал в первом посте - тупо не знаю как сложить готовые формы, хранящие объекты в 1 collectionType глобальной формы, которая всё и всех отрисует и кнопку сабмит еще 1 на всех.

Алексей
16.01.2017
16:05:08
Насколько я понимаю, то, что тебе надо вот тут описано:
https://symfony.com/doc/current/form/form_collections.html
Тот самый один объект, о котором я говорил в данном случае будет Task. А то, что ты собрался заворачивать в больших количествах - Tag.

Dima
16.01.2017
16:05:19

finkel
16.01.2017
16:06:54
аминь)
тоже с ним страдаю, утром писал, хотя я вообще страдаю с формами)

Admin
ERROR: S client not available

Алексей
16.01.2017
16:08:16
1. Разбираешь CSV. Из каждой строчки создаёшь по объекту B (см. Tag). Добавляешь их к объекту A в коллекцию (см. Task).
2. Задаёшь объект A как data для формы (TaskType), которая содержит поле с коллекцией, которое обрабатывается другой формой, где уже описаны поля для каждого объекта (TagType).
3. ???
4. PROFIT

Dima
16.01.2017
16:10:28

Алексей
16.01.2017
16:11:55
Для начала отрендери всё это простым {{ form(your_form) }}. А потом уже разбирайся с кастомизацией.
Сделай логику разбора всего этого, добейся чтобы она работала, а потом делай вывод формы, когда уверен, что всё в бэкэнде работает.

Dima
16.01.2017
16:13:53

finkel
16.01.2017
16:46:43
сейчас глупость спрошу, простите :)
а вообще нормальная практика делать сущности чисто под формы?
а то слишком много боли

Алексей
16.01.2017
16:48:03
Сущности или DTO?

finkel
16.01.2017
16:48:22

Алексей
16.01.2017
16:49:09
Вообще, здесь нужно как всегда потыкать @fes0r, он людит рассказывать почему формы не нужны и если юзать их, то как.

Google

finkel
16.01.2017
16:50:05

Алексей
16.01.2017
16:50:11
Ну DTO.

finkel
16.01.2017
16:50:21
возможно

Алексей
16.01.2017
16:50:45
А потом ты его провалидируешь, сделаешь с ним что-нибудь и слепишь из этого Entity.

Rodion
16.01.2017
16:53:42
Есть кстати DataMapperInterface и DataTrasformerInterface, если че
чтобы на лету из формы лепить Entity
https://speakerdeck.com/webmozart/symfony-forms-101
в этом докладе описано

Алексей
16.01.2017
16:54:56
Я лично в последнее время пришёл как минимум к тому, что десериализацию напрямую в сущности уже не делаю - это неудобно и сулит костылями.
А с формами пока DTO не юзал просто потому, что не подвернулось ещё. Но вообще, если следовать заветам о том, что сущность всегда должна быть валидна, то да, под форму лучше DTO склепать.

Rodion
16.01.2017
16:55:30
валидна = в том числе иметь id?

Алексей
16.01.2017
16:55:42
Это тоже.

finkel
16.01.2017
16:56:23
спасибо, буду разбираться

Rodion
16.01.2017
16:56:56
в конфиге формы можно написать closure создания сущности с непустым конструктором. тоже в презе есть про это.
видео к презе тоже есть
весело то, что в доках нигде не написано ни про написание, ни про использование своих датамапперов.

Sergey
16.01.2017
19:36:42
вроде
когда в последний раз юзал формы - в доках все было

Rodion
16.01.2017
19:39:13
про дата трансформеры есть