수색…
소개
라우팅은 URL을 컨트롤러 에 매핑하는 프로세스입니다. Symfony에는 경로를 정의 할 수있는 강력한 라우팅 구성 요소가 있습니다.
Routing 구성 요소는 주석, YAML, XML 및 원시 PHP와 같은 여러 가지 구성 형식을 지원합니다.
매개 변수
매개 변수 | 세부 |
---|---|
이름 | 경로 이름. 예 : book_show |
통로 | 경로 (와일드 카드가 포함될 수 있음) 예 : /book/{isbn} |
기본값 | 매개 변수의 기본값 |
단순 경로
YAML 사용 :
# app/config/routing.yml
blog_list:
path: /blog
defaults: { _controller: AppBundle:Blog:list }
특수 효과 사용 :
// src/AppBundle/Controller/BlogController.php
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class BlogController extends Controller
{
/**
* @Route("/blog", name="blog_list")
*/
public function listAction()
{
// ...
}
}
/blog
URL에 대한 요청은 BlogController
내의 AppBundle
의 listAction()
메소드에 의해 처리됩니다.
자리 표시자가있는 경로
YAML 사용 :
# app/config/routing.yml
blog_show:
path: /blog/{slug}
defaults: { _controller: AppBundle:Blog:show }
특수 효과 사용 :
// src/AppBundle/Controller/BlogController.php
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class BlogController extends Controller
{
/**
* @Route("/blog/{slug}", name="blog_show")
*/
public function showAction($slug)
{
// ...
}
}
/blog/*
와 일치하는 URL이있는 요청은 BlogController
내의 AppBundle
의 showAction()
메소드에 의해 처리됩니다. 컨트롤러 동작은 메서드 인수로 자리 표시 자의 값을받습니다.
예를 들어,에 대한 요청 /blog/my-post
에 대한 호출 트리거 showAction()
인수와 $slug
값을 포함하는 my-post
. 컨트롤러 액션은 그 인수를 사용하여, 예를 들어 데이터베이스에서 slug my-post
를 사용하여 블로그 게시물을 검색하여 자리 표시 자의 값에 따라 응답을 변경할 수 있습니다.
자리 표시 자의 기본값
누락 될 수있는 자리 표시자를 원할 경우 기본값으로 지정할 수 있습니다.
YAML 사용 :
# app/config/routing.yml
blog_list:
path: /blog/{page}
defaults: { _controller: AppBundle:Blog:list, page: 1 }
requirements:
page: '\d+'
특수 효과 사용 :
// src/AppBundle/Controller/BlogController.php
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class BlogController extends Controller
{
/**
* @Route("/blog/{page}", name="blog_list", requirements={"page": "\d+"})
*/
public function listAction($page = 1)
{
// ...
}
}
이 예제에서 /blog
및 /blog/1
URL은 모두 blog_list
경로와 일치하며 listAction()
메소드에 의해 처리됩니다. /blog
의 경우, listAction()
은 $page
인수를 기본값 인 1
받습니다.