让我们从基本的事情开始,简单的例子是Yii。它有小部件这样的东西。独立,可配置和可从我们想要的类的任何地方调用。我想知道symfony2可以有相同的吗?它会是什么?控制器捆绑?动作简单(方法)?带参数的小工具(树枝)?
在Yii中,我们创建(小部件)类,独立,描述和使用(通过调用模板)。它在symfony2中会是什么样子?
简单示例'我希望使用小部件创建菜单导航,它将按用户角色构建html。
答案 0 :(得分:8)
Symfony没有提供这样的功能,但您可以自己制作。他们很少有这样做。
我只是承认我们正在讨论可以进行后端工作的小部件(即从数据库获取数据,调用API等)。
使用render tag in Twig,允许您从模板中调用控制器操作。它是可扩展的,因为您可以使用esi tags with Varnish(您也可以实现自己的缓存配置文件)。 作为奖励,探查器将在时间轴中显示有关特定渲染调用的详细信息(它看起来像整个请求的子集)。
包含的模板通过Twig函数调用收集数据。根据经验,它比第一个解决方案快一点,但它不易扩展。
twig函数将获取数据并调用renderView
服务的template
方法。如果您打算这样做,您可能想要使用第一种方法。
如果你有一个大型网站,其模块/小部件可以获得大量流量(或“点击”):使用第一个解决方案。
如果您的小网站不支持缓存:请使用第二种解决方案。如果模块/小部件超轻,您可以使用此解决方案。
如果您正在考虑第三种解决方案......使用第一种解决方案可能是个好主意。
就个人而言,我总是会尝试使用第一种解决方案并尝试以某种方式提升性能。自从最新版本的Symfony2以来,Twig中的渲染调用得到了显着改善。
希望我的回答能为您提供一些指导。