Symfony欧宝娱乐app下载地址 2.6中的新功能:控制器的新快捷方法
2014年9月25日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。欧宝娱乐app下载地址有些信息可能已经过时了。阅读最新的Symfony文档欧宝娱乐app下载地址.
提供的
托马斯•罗耶在# 11593.而且格雷戈勒Pineau在# 11602.
欧宝娱乐app下载地址Symfony自带一个非常方便的功能控制器类这有助于完成一些最常见的控制器任务。当您的控制器从欧宝娱乐app下载地址
类时,您可以利用几个帮助器方法,例如重定向()
,getUser ()
而且createNotFoundException ()
.
这些助手非常有用,所以我们决定把它们包括进来在Symfony 2.6中有五个新的控制器助手欧宝娱乐app下载地址提高工作效率:
1.redirectToRoute ()
,允许返回一个基于路由名称的重定向,而不是必须先生成URL:
1 2 3 4 5 6 7 8 9
// 欧宝娱乐app下载地址Symfony 2.6返回$这->redirectToRoute (“主页”);返回$这->redirectToRoute (“product_show”,数组(“id”= >12),301);// Symfony以前欧宝娱乐app下载地址的版本返回$这->重定向($这->generateUrl (“主页”));返回$这->重定向($这->generateUrl (“product_show”,数组(“id”= >12)),301);
2.addFlash ()
,允许创建给定类型的flash消息,首先检查用户会话是否可用:
1 2 3 4 5
// 欧宝娱乐app下载地址Symfony 2.6$这->addFlash (“信息”,项目创建成功。);// Symfony以前欧宝娱乐app下载地址的版本$这->get (“会话”)->getFlashBag ()->add (“信息”,项目创建成功。);
3.isGranted ()
,检查给定的属性是否针对当前身份验证令牌和可选提供的对象被授予:
1 2 3 4 5 6 7 8 9
// 欧宝娱乐app下载地址Symfony 2.6如果($这->isGranted (“ROLE_ADMIN”)) {/ /……}// Symfony以前欧宝娱乐app下载地址的版本如果($这->get (“security.context”)->isGranted (“ROLE_ADMIN”)) {/ /……}
4.denyAccessUnlessGranted ()
,抛出异常,除非针对当前身份验证令牌和可选提供的对象授予属性:
1 2 3 4 5 6 7
// 欧宝娱乐app下载地址Symfony 2.6$这->denyAccessUnlessGranted (“ROLE_EDIT”,$项,“您无法编辑此项目。”);// Symfony以前欧宝娱乐app下载地址的版本如果(假===$这->get (“security.context”)->isGranted (“ROLE_EDIT”,$项)) {扔$这->createAccessDeniedException (“您无法编辑此项目。”);}
5.isCsrfTokenValid ()
,检查给定CSRF令牌的有效性:
1 2 3 4 5 6 7
// 欧宝娱乐app下载地址Symfony 2.6$这->isCsrfTokenValid (“token_id”,“令牌”);// Symfony以前欧宝娱乐app下载地址的版本使用欧宝娱乐app下载地址\组件\安全\Csrf\CsrfToken;$这->get (“security.csrf.token_manager”)->isTokenValid (新CsrfToken (“token_id”,“令牌”))
发表在#生活在边缘
评论
阿里尔Ferrandini
2014年9月25日在07:16
这会减少我们的打字时间:)
感谢贡献者和DX倡议。
感谢贡献者和DX倡议。
@Javier:所以这个例子应该被修改,因为Symfony2应该支持5.3.3。欧宝娱乐app下载地址
简单和非常有用的射切方法!
感谢DX倡议
感谢DX倡议
@Loïc你是对的。我只是更新了示例以使用旧的冗长array()语法。
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now