Собираюсь делать файловый хостинг на компонентах Symfony. Уже более-менее разобрался с http-kernel, httpd-foundation, dependency-injection, routing, twig. Что еще подтянуть можно? Цель - поверхностно пощупать symfony, чтобы иметь о нем какое-то представление, так как после этой задачи буду углубляться в ларавель. Наверное, стоит взять доктрину и symfony forms? Алсо, почитал доки Symfony Filesystem, подскажите пожалуйста в чем его смысл. Я увидел лишь копирование уже существующих, встроенных в пхп методов, под теми же названиями.
>>1779701Если ты просто хранишь файлы на диске, то да это просто обертка над существующими методами. Но как только ты решишь перенести свои картиночки на CDN или в AWS S3, то тебе придется переписать весь код сохранения. А в Symfony Filesystem есть готовая абстракция, и работа с файлами происходит всегда одинаково, вне зависимости от того где фалы хранятся. Почитай вступление тут https://symfonycasts.com/screencast/symfony-uploads/flysystem
>>1779728Спасибо за ответ, подтягивать не буду тогда. Symfony Forms тоже похоже что подтягивать не буду - с валидатором поиграться не выйдет особо, аякс не очень понятно как к этому делу прикузьмичивать, так еще и оказалось что компонент Translation к нему обязательный при использовании Twig.
>>1780928> аякс не очень понятно как к этому делу прикузьмичиватьВообще, тут ничего сложного нет. Тебе в аяксе надо: - проставить в форму присланные значения- вернуть список ошибокПервое делается так: $form->submit($data); где $data - массив значенийМожно проставлять значения отдельных полей хоть руками: $form->get('name')->submit('Ivan');Второе делается обходом дерева формы и сбором ошибок через $form->getErrors(). Ошибки преобразуешь в нужный формат и отдаешь. Учти, что ошибки могут быть как в самой форме, так и в каком-то из ее элементов, потому надо обходить все дерево со всеми детьми.
>>1780953Спасибо что подсказал, в принципе тогда не все так ужасно. Разбираюсь пока-что. Не понравились мне пикрил многоходовки для вычисления папки с темами для форм, добавил в композер скрипт, который копирует эту папку в нормальную директорию с шаблонами. Для файлов твиттер бутстрапа тоже такое сделал. Нормальная практика? Не особо хочется важные файлы, к которым я прямо обращаюсь, в закоулках vendor держать. Наверное, эти папки еще нужно прописать в .gitignore?И еще вопросик:Можно ли как-то прямо в yaml-файле DI-контейнера Symfony создавать сервисы не через конструкторы, а с помощью статических методов? А то приходится разделять создание сервисов на две части, не очень красиво получается.
>>1781082> Не понравились мне пикрил многоходовки для вычисления папки с темами для формКод выглядит странно, конечно. Ты можешь вместо него руками прописать путь к папке, найди где они лежат и пропиши. Копировать файлы, наверно, все же не стоит.Бутстрап копировать можно, если ты его установил через композер. > Можно ли как-то прямо в yaml-файле DI-контейнера Symfony создавать сервисы не через конструкторы, а с помощью статических методов?Можно, https://symfony.com/doc/current/service_container/factories.htmlТакже, обрати внимание на autowiring, он позволяет минимизировать размер конфига.
>>1781944 →Спасибо. Насчет autowiring, он точно должен работать на компонентах? Читал о нем еще в твоем гайде по DI, но даже не пытался реализовать, т.к. был уверен что это лютейшая магия, работающая только на полном symfony. Сейчас вот попытался сделать как на пике, но что-то параметры в конструкторы не пробрасываются. Даже на новом голом тестовом проекте с одним лишь DI пробовал, всё равно безуспешно. Больше я бы, конечно, удивился, если бы оно работало.
>>1792838Не может, так как данные сессии хранятся в файле на сервере, а у юзера в куке хранится только идентификатор (из которого получается имя) файла. >>1785933По идее должен работать как описано в мануале (либо выдавать ошибку с конкретным указанием проблемы).