欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

symfony2 路由工作原理及配置,symfony2工作原理

程序员文章站 2022-05-26 13:17:20
...

symfony2 路由工作原理及配置,symfony2工作原理

1、路由是程序的方法和URL的一一映射。

在配置文件里,把经常访问的路由放在前面,可以提高路由匹配的效率。

2、路由匹配的两种方式

  • Annotation

  允许在方法的上面用注释定义方法运行状态的功能

class UserController extends Controller{
    /**
     * @Route("/user/login")
     * @Template()
     */
     public function loginAction(){
         //代码
     }   
}
  • router.yml

  symfony2常用的配置格式

两种方法不能同时用。

3、URL的定义

静态URL和动态URL

php

namespace Scource\WebBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;//下面路由定义中用到Method

//定义总的router,如果当前控制器中用到的路由都是以/page开始 /** * @Route("/page") */ class DefaultController extends Controller { /** * @Route("/{page_num}",defaults={"page_num":1},requirements={"page_num"="\d+"}) * @Template() * @Method("get") */ //以上注释并不是没有用,是利用注释动态影响程序代码,定义总的路由之后,在定义当前路由时,只定义第二级路由就可以 //defaults={"page_num":1}设置page_num默认值为1 //requirements={"page_num"="\d+"}要求page_num必须为数字 //http://localhost:8000/app_dev.php/page/555 public function indexAction($page_num) { $method = $this->getRequest()->getMethod();//获取表单数据的传送方式 return array('name' => $page_num); } /** * @Route("/test",name="page_test") * @Template() */ //name="page_test"设置路由名称 //通过命令行>php app/console router:match /page/test 可以查询/page/test的路由信息 //http://localhost:8000/page/test?name=world public function testAction() { $name = $this->getRequest()->get('name');//获取临时传递参数的值 return array('name' => $name); } }

//////////////

use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter