2015-07-25 2 views
0

В папке src/AppBundle/Controller есть файл с именем DefaultController.php.Сколько файлов контроллера следует создавать в приложении Symfony2?

Я создам url, как показано ниже, следует использовать только DefaultController.php для всех запросов URL или рекомендуется использовать другой файл controller.php (UserController.php, FeedController.php и т. Д.) Для каждой части сайт? (профиль, канал, настройки и т. д.)

У меня также есть другой вопрос. Насколько я понимаю, мы помещаем наши html-файлы в нашу папку /App/Resources/views, чтобы разделить их. Нужно ли создавать конкретный файл для каждой части веб-сайта, как плоский PHP? (settings/index.php, settings/password.php, settings/things.php, settings/security.php и т. д.).

Я не уверен, подходит ли этот вопрос для SO или нет.

настройки

/settings 
/settings/password 
/settings/things 
/settings/security 
/settings/privacy 
/settings/ban 
/settings/notifications 
/settings/mail 
/settings/mobile 
/settings/applications 
/settings/advertising 
/settings/invite 

пользователя

/username 
/username/photos 
/username/friends 
/username/posts 

корма

/feed 
/feed/posts/postid 

ответ

2

Для обоих вопросов нет жесткого ответа. Я должен создать контроллер для каждой части вашего сайта НА МЕНЕЕ. Теоретически вы можете выбросить все в один контроллер, но если вы закончите, это будет очень длинный список. Другая проблема заключается в том, что ваши имена действий, такие как indexAction, будут повторяться, что, конечно, невозможно, потому что каждый метод должен иметь другое имя. И имена, такие как index1Action, index2Action и т. Д. Также не являются правильным решением :-). Другим помощником является создание собственного контроллера для каждого ENTITY.

Файлы Twig должны быть написаны только для одной страницы или только для части страницы. Представьте, что у вас есть домашняя страница с последними 10 новостными страницами, а также страница новостей с большим количеством новостей (возможно, с разбивкой на страницы). Сами же журналисты выглядят одинаково на обеих страницах. В этом случае вы можете сделать home.html.twig, news.html.twig, а также newsitem.html.twig. Оба дома и новости будут включать newsitem, чтобы показать newsitems ...

Надеюсь, что я дал вам свет.

+0

Да, вы сделали. Спасибо. – salep

Смежные вопросы