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 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
1 몇 주 전
By DDD
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7445
15


Cakephp 튜토리얼
1372
52


Steam의 계정 이름 형식은 무엇입니까?
76
11


Win11 활성화 키 영구
39
19


NYT 연결 힌트와 답변
13
6

