symfony2 路由工作原理及配置,symfony2工作原理
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>
登入後複製
- 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>
登入後複製
//////////////
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
<🎜>:種植花園 - 完整的突變指南
3 週前
By DDD
<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
如何修復KB5055612無法在Windows 10中安裝?
3 週前
By DDD
藍王子:如何到達地下室
1 個月前
By DDD
北端:融合系統,解釋
3 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)