URL 관리 구성 요소는 주로 두 가지 기능을 제공합니다.
1. 사용자가 입력한 URL에 따라 이 요청을 처리하기 위한 경로(컨트롤러가 이를 처리하는 작업)를 분석하고 동시에 추가합니다. $_GET 매개변수에 있는 URL의 매개변수 부분입니다. 모든 웹 프레임워크에서 경로 배포 작업을 수행하려면 이러한 구성 요소가 필요합니다.
2. 경로와 매개변수 배열을 기반으로 URL을 만듭니다. URL은 뷰 레이어에 하드 코딩될 수 있습니다. 즉, URL 주소가 직접 작성되지만 이는 종종 유연성이 부족하고 나중에 유지 관리 비용이 발생합니다.
array( 'components'=>array( 'urlFormat'=>'path', 'rules'=>array( '/art/<cate:\w+>/<key:\d+>/<id:\d+>/<p:\d+>'=>'article/<cate>/<key>', 'post/<id:\d+>/<title:.*?>'=>'post/view', '<controller:\w+>/'=>'<controller>/', ), ), );</action></controller></action:\w+></controller:\w+></title:.*?></id:\d+></key></cate></p:\d+></id:\d+></key:\d+></cate:\w+>
위는 URL 관리 컴포넌트 구성으로 총 3가지 규칙이 있습니다. 아래 그림은 URL 구문 분석과 URL 생성의 두 가지 기능을 설명하기 위해 첫 번째 규칙을 예로 사용합니다. 각 라우팅 규칙에 대해 CUrlManager는 이 규칙에 해당하는 두 가지 기능을 처리하기 위해 CUrlRule 개체를 생성하므로 규칙이 여러 개인 경우 CUrlRule 개체도 여러 개 있게 됩니다. 따라서 CUrlRule은 URL 관리의 핵심입니다. CUrlRule의 작동 원리를 분석해 보겠습니다.
각 URL 라우팅 규칙은 CUrlRule 개체에 의해 처리됩니다. 다음으로 다음 라우팅 규칙을 예로 들어 보겠습니다. '/art////'=>'article //'에는 URL 파싱 및 URL 생성 처리 과정을 설명합니다. 각 CUrlRule 개체별로 URL을 처리하는 과정은 3단계로 나눌 수 있습니다.
1. CUrlRule 개체 초기화
CUrlRule 개체의 생성자에서는 6개의 중요한 멤버 변수가 초기화됩니다.
2. URL 구문 분석
URL 구문 분석 작업은 다음 세 단계로 구분됩니다. a. 패턴 규칙에 따라 URL의 각 필드를 구문 분석합니다. 참조에 따라 경로에 ;c. params에 지정된 필드를 $_GET 배열에 추가합니다
3. URL 생성
URL 생성 작업은 다음 세 단계로 나뉩니다. 입력 경로의 각 필드를 구문 분석하고, 입력 매개변수 배열과 이전 단계에서 구문 분석한 배열을 병합합니다. c.
위는 Yii 프레임워크 분석(8) - URL 관리 컴포넌트의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.php)를 참고해주세요. CN)!