php框架symfony(php之Symfony框架设置路由)
路由对于框架的作用 ,我们已经在配置不同框架时了解到了 。不过每个框架添加路由 ,发挥的作用还是有一些小区别的 。以Symfony框架为例 ,主要是为了获取方法和创建相关的复杂路由 。下面我们就Symfony框架设置路由的目的进行分析 ,然后就具体的设置步骤分享给大家 。
一 、路由作用
//src/AppBundle/Controller/BlogController.php namespaceAppBundle\Controller; useSymfony\Bundle\FrameworkBundle\Controller\Controller; useSensio\Bundle\FrameworkExtraBundle\Configuration\Route; classBlogControllerextendsController { /** *Matches/blogexactly * *@Route("/blog",name="blog_list") */ publicfunctionlistAction() { //... } /** *Matches/blog/* * *@Route("/blog/{slug}",name="blog_show") */ publicfunctionshowAction($slug) { //$slugwillequalthedynamicpartoftheURL //e.g.at/blog/yay-routing,then$slug=yay-routing //... } }这两条路由的作用是:
如果用户访问 /blog, 将会匹配第一条路由, 并执行listAction()
如果用户访问 /blog/*, 第二条路由将会被匹配到, showAction()方法被执行 。因为路由是 /blog/{slug}, $slug变量会被传给showAction. 例如, /blog/yay-routing, $slug 会等于 yay-routing
这就是Symfony路由器的目的: 把URL映射到控制器 。随着时间的推移, 会了解到所有的方法, 可以轻而易举地创建更复杂的路由 。
二 、设置路由步骤
1.应用配置都在 app/config 下 ,路由配置文件 app/config/routing.yml:
2.从注释中看出 ,路由定义有多种方式 ,比如YAML 、XML 、PHP文件等 ,这里采用的是annotation即注解的形式 ,直接在控制器中的action即动作函数上加注解@Route() ,这样也好 ,省得单独维护一个路由文件 ,不过单独文件也有好处,所有路由列表清楚可见 。
注意到app路由有前缀 prefix: /en ,这个试了是不能省略的 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!