程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> symfony2 路由工作原理及配置,symfony2工作原理

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

編輯:關於PHP編程

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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved