- PVSM.RU - https://www.pvsm.ru -
Доброго времени суток, уважаемые читатели. Сегодня увидел статью на хабре «Официальный гайд по лучшим практикам в Symfony» [1] и понял, что мне есть что исправить добавить. К вашему вниманию список личных советов и объяснение к ним.
Лично я люблю аннотации, но с опытом понял, что они приносят некий дискомфорт. Дело в том, что всю конфигурацию перенести в аннотации нельзя. Остается 2 варианта:
Если выбрать второй вариант, то при росте проекта получается каша. И в вашем коде аннотаций больше, чем логики. Отговорки по типу «так легче находить роуты» не принимаются. Так как если расскидывать файлы конфигураций правильно, ты всегда знаешь, где находятся роуты к определённым контроллерам. Я уже молчу про команды в консоли, по типу route:debug, и отладчик, в котором видно название екшена и имя роута.
Плохой пример (как по мне):
Сразу приведу плохой пример, как устроено на текущем проекте:
Все классы менеджеров должны быть в папке Manager, классы репозиториев Repository. Если этого не делать, то при появлении уже 5-10 сущностей со своими менеджерами и репозиториями жить становится «веселее».
Всё просто. В каждой отдельной странице вы сможете переопределять и подгружаться будут всегда только те яваскрипты и стили, которые нужны. Так же советую в самом базовом шаблоне эти блоки оставить пустыми. А в бандлах при создании главного layout.html.twig их заполнять.
Даже если проект небольшой, изначально привыкайте хранить конфигурации бандлов в AppBundle/Resources/, а не в app/config. В app/ только ссылки. В основном это касается роутинга и сервисов.
Сущности лучше описывать в конфигурации, например, в AppBundle/Resources/config/doctrine/Entity.orm.yml, и генерить с помощью команды doctrine:generate:entities, которая сама сгенерирует классы сущностей. Когда конфиги сущностей находятся в файлах, сами классы выглядят чище. Так же вы будете уверенны, что в них нет ошибок.
В файле parameters.test укажите параметры тестовой базы, в которую загружаете фикстуры. Так вы всегда будете уверенны, что тестируете одни и те же данные. Возможно, все так и делает, просто на текущем проекте я столкнулся с отсутствием такой практики.
Конечно это всё банальные вещи, но есть люди, которые так не делают и из-за этого страдают мученики программисты, которые пишут после них.
Буду рад если кто-то напишет свои советы в комментариях.
Автор: VolyaPers
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/71554
Ссылки в тексте:
[1] «Официальный гайд по лучшим практикам в Symfony»: http://habrahabr.ru/post/240187/
[2] Источник: http://habrahabr.ru/post/240327/
Нажмите здесь для печати.