Table of Contents
symfony2 路由工作原理及配置,symfony2工作原理
Home php教程 php手册 symfony2 路由工作原理及配置,symfony2工作原理

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

Jun 13, 2016 am 08:46 AM

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

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

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

2、路由匹配的两种方式

  • Annotation

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

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

  symfony2常用的配置格式

两种方法不能同时用。

3、URL的定义

静态URL和动态URL

<?<span>php

namespace Scource\WebBundle\Controller;

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

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

use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter

 

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)