> php教程 > PHP开发 > 본문

Yii 프레임워크 분석(8) - URL 관리 구성요소

黄舟
풀어 주다: 2016-12-27 11:25:30
원래의
1266명이 탐색했습니다.

URL 관리 구성 요소는 주로 두 가지 기능을 제공합니다.
1. 사용자가 입력한 URL에 따라 이 요청을 처리하기 위한 경로(컨트롤러가 이를 처리하는 작업)를 분석하고 동시에 추가합니다. $_GET 매개변수에 있는 URL의 매개변수 부분입니다. 모든 웹 프레임워크에서 경로 배포 작업을 수행하려면 이러한 구성 요소가 필요합니다.
2. 경로와 매개변수 배열을 기반으로 URL을 만듭니다. URL은 뷰 레이어에 하드 코딩될 수 있습니다. 즉, URL 주소가 직접 작성되지만 이는 종종 유연성이 부족하고 나중에 유지 관리 비용이 발생합니다.

array(
    'components'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            &#39;/art/<cate:\w+>/<key:\d+>/<id:\d+>/<p:\d+>&#39;=>&#39;article/<cate>/<key>&#39;,
            &#39;post/<id:\d+>/<title:.*?>&#39;=>&#39;post/view&#39;,
            &#39;<controller:\w+>/&#39;=>&#39;<controller>/&#39;,
         ),
    ),
);</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의 작동 원리를 분석해 보겠습니다.

Yii 프레임워크 분석(8) - URL 관리 구성요소

각 URL 라우팅 규칙은 CUrlRule 개체에 의해 처리됩니다. 다음으로 다음 라우팅 규칙을 예로 들어 보겠습니다. '/art////'=>'article //'에는 URL 파싱 및 URL 생성 처리 과정을 설명합니다. 각 CUrlRule 개체별로 URL을 처리하는 과정은 3단계로 나눌 수 있습니다.
1. CUrlRule 개체 초기화
CUrlRule 개체의 생성자에서는 6개의 중요한 멤버 변수가 초기화됩니다.

Yii 프레임워크 분석(8) - URL 관리 구성요소

2. URL 구문 분석
URL 구문 분석 작업은 다음 세 단계로 구분됩니다. a. 패턴 규칙에 따라 URL의 각 필드를 구문 분석합니다. 참조에 따라 경로에 ;c. params에 지정된 필드를 $_GET 배열에 추가합니다
3. URL 생성
URL 생성 작업은 다음 세 단계로 나뉩니다. 입력 경로의 각 필드를 구문 분석하고, 입력 매개변수 배열과 이전 단계에서 구문 분석한 배열을 병합합니다. c.

Yii 프레임워크 분석(8) - URL 관리 구성요소

위는 Yii 프레임워크 분석(8) - URL 관리 컴포넌트의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.php)를 참고해주세요. CN)!


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