我应该在Symfony2应用程序中创建多少个控制器文件?

时间:2015-07-25 22:14:51

标签: symfony

src/AppBundle/Controller文件夹中,有一个名为DefaultController.php的文件。

我将创建如下所示的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

1 个答案:

答案 0 :(得分:2)

对于这两个问题都不是硬答案。我应该至少为你网站的每个部分创建一个控制器。理论上你可以把所有东西都扔进一个控制器但是如果你完成的话它将是一个很长的列表。另一个问题是像indexAction这样的动作名称会重复,这当然是不可能的,因为每个方法都必须有不同的名称。而像index1Action,index2Action等名称也不是一个合适的解决方案:-)。另一个帮助是为每个ENTITY创建一个自己的控制器。

Twig文件只能写入一页或仅写入页面的一部分。想象一下,你有一个包含最新10个新网站的主页,但也有一个包含更多新闻项目的新闻页面(可能带有分页)。 newsitems本身在两个页面上看起来都是一样的。在这种情况下,您可以制作home.html.twig,news.html.twig以及newsitem.html.twig。家庭和新闻都将包括newsitem以显示新网站......

希望我能给你一个亮点。