심포니 라우팅 구성 요소(라우팅 구성 요소)

WBOY
풀어 주다: 2016-08-08 09:19:49
원래의
1503명이 탐색했습니다.

라우팅 구성 요소는 HTTP 요청을 일련의 구성 매개 변수로 변환합니다.

설치

이 구성 요소를 설치하는 방법에는 두 가지가 있습니다.

<code>通过 Composer (symfony/routing on Packagist);
使用官方的 Git repository (https://github.com/symfony/Routing)。
</code>
로그인 후 복사

그런 다음 Composer는 자동 로딩 메커니즘에 Vendor/autoload.php 파일을 제공해야 합니다. 그렇지 않으면 응용 프로그램이 이 구성 요소를 찾을 수 없습니다.

사용

기본 라우팅 시스템을 설정하려면 다음 세 부분이 필요합니다.

  • 경로 정의(Route 클래스의 인스턴스)가 포함된 RouteCollection
  • 요청에 대한 정보인 RequestContext
  • UrlMatcher는 요청을 단일 경로로 일치시킵니다(즉, 사용해야 하는 경로를 결정합니다)

여기는 간단한 예. 여기에서 오토로더가 이 구성요소를 로드했는지 확인해야 합니다.

<code><span>use</span><span>Symfony</span>\<span>Component</span>\<span>Routing</span>\<span>Matcher</span>\<span>UrlMatcher</span>;
<span>use</span><span>Symfony</span>\<span>Component</span>\<span>Routing</span>\<span>RequestContext</span>;
<span>use</span><span>Symfony</span>\<span>Component</span>\<span>Routing</span>\<span>RouteCollection</span>;
<span>use</span><span>Symfony</span>\<span>Component</span>\<span>Routing</span>\<span>Route</span>;

<span>$route</span> = <span>new</span> Route(<span>'/foo'</span>, <span>array</span>(<span>'controller'</span> => <span>'MyController'</span>));
<span>$routes</span> = <span>new</span> RouteCollection();
<span>$routes</span>->add(<span>'route_name'</span>, <span>$route</span>);

<span>$context</span> = <span>new</span> RequestContext(<span>$_SERVER</span>[<span>'REQUEST_URI'</span>]);

<span>$matcher</span> = <span>new</span> UrlMatcher(<span>$routes</span>, <span>$context</span>);

<span>$parameters</span> = <span>$matcher</span>->match(<span>'/foo'</span>);
<span>// array('controller' => 'MyController', '_route' => 'route_name')</span></code>
로그인 후 복사

$_SERVER['REQUEST_URI']를 사용할 때 모든 매개변수가 URL에 포함될 수 있다는 점에 유의해야 합니다. 간단한 해결책은 아래에 설명된 HttpFoundation 구성 요소를 사용하는 것입니다.

계속

원본링크:
http://symfony.com/doc/current/comComponents/routing/introduction.html

위에서는 Symfony 라우팅 구성 요소(라우팅 구성 요소)를 소개했으며 그 내용도 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿