내가 묻는 이유는 PHP 스크립트가 경로가 아니기 때문입니까? 예를 들어, article.php가있는 경우 경로는 단순히 http://mysite.com/article.php 입니다.
라우트가 이미 간단한 파일로 존재할 때 라우트 개념을 더 추상화해야하는 이유는 무엇입니까?
내가 묻는 이유는 PHP 스크립트가 경로가 아니기 때문입니까? 예를 들어, article.php가있는 경우 경로는 단순히 http://mysite.com/article.php 입니다.
라우트가 이미 간단한 파일로 존재할 때 라우트 개념을 더 추상화해야하는 이유는 무엇입니까?
답변:
라우터의 기능을 이해하려면 먼저 다시 쓰기 엔진이 무엇인지 이해해야합니다. 로부터 위키 백과 문서 (강조 광산) :
재 작성 엔진은 웹 URL의 모양을 수정하는 소프트웨어입니다 (URL 재 작성). 재 작성된 URL (짧은, 멋진 URL 또는 검색 엔진 친화적 인-SEF라고도 함)은 웹 페이지에 대한 더 짧고 관련성이 높은 링크를 제공하는 데 사용됩니다. 이 기술은 웹 페이지를 생성하는 데 사용되는 파일과 월드에 표시되는 URL을 어느 정도 분리합니다 .
다시 쓰기 엔진을 사용하면 URL과 PHP 스크립트간에 1 : 1 상관 관계가 없습니다. 같은 기사의 예 :
http://example.com/wiki/index.php?title=Page_title
다음과 같이 다시 작성할 수 있습니다.
이 기술을 사용하면 여러 가지 이점 이 있습니다 . PHP는 일반적으로 Apache와 밀접하게 연결되어 있기 때문에 가장 일반적으로 사용되는 재 작성 엔진은 Apache의 mod_rewrite 입니다.
URL을 다시 쓰려면 라우팅은 URL을 가져 와서 구성 요소로 나누고 호출 할 실제 스크립트를 결정하는 프로세스이므로 일종의 라우팅이 필요합니다. 표준 라우터에 대한 설명서 페이지 젠드 프레임 워크의 프로세스 등을 설명합니다 :
라우팅은 URI 엔드 포인트 (기본 URL 다음에 오는 URI의 일부)를 가져와 매개 변수로 분해하여 요청을 수신해야하는 해당 컨트롤러의 모듈, 컨트롤러 및 조치를 판별하는 프로세스입니다.
대부분의 PHP 프레임 워크는 요즘 기반으로 MVC 패턴 및 MVC 프레임 워크 과정은 다음과 같이 간다 *를 :
index.php
스크립트,index.php
URL을 가져와 라우팅 프로세스를 시작합니다.컨트롤러 및 메소드에 매개 변수를 일치시키는 것은 일반적 으로 정규식 을 통한 일치를 사용 하여 경로라고하는 복잡하고 동적 인 라우팅 패턴을 처리 할 수 있습니다. 라우트의 좋은 예는 CodeIgniter의 URI 라우팅 문서 페이지에서 찾을 수 있습니다 .
$ route [ 'journals'] = "블로그";
$ route [ 'blog / joe'] = "블로그 / 사용자 / 34";
$ route [ 'product / (: any)'] = "카탈로그 / product_lookup";
$ route [ 'product / (: num)'] = "카탈로그 / product_lookup_by_id / $ 1";
$route
배열 키로 패턴의 값으로 생성 된 작업 보유 controller/action_method/dynamic_parameter
형식.
* 이것은 정식 프로세스에 대한 설명이 아니라 지나치게 단순화 된 설명입니다.