ThinkPHP 라우팅 상세 설명_php 기술
기본 구성을 사용하면 애플리케이션의 기본 홈페이지에 액세스할 수 있습니다. 프로젝트 디렉터리를 입력하고 PHP 내장 서버를 직접 사용하여 다음과 같은 액세스를 시작하세요.
php -S localhost:8999
ThinkPHP의 기본 홈페이지인 웃는 얼굴을 보려면 브라우저에 localhost:8999를 입력하세요.
여기서는 ThinkPHP와 함께 제공되는 기본 항목 파일인 index.php에 액세스하고 있습니다. 즉, IndexController의 index() 메서드에 액세스하고 있습니다. 이는 ThinkPHP의 기본 설정이 다음과 같기 때문입니다.
'DEFAULT_CONTROLLER' => 'Index'
ThinkPHP/Conf/convention.php 파일을 살펴보셨다면 이것이 실제로 기본 컨트롤러를 설정하고 있다는 것을 아실 것입니다.
컨트롤러에 대해서는 나중에 자세히 다루겠습니다
이러한 기본 지식을 이해한 후 다른 페이지, 다른 컨트롤러 및 메서드에 액세스해야 한다면 어떻게 될까요? 대답은 라우팅 튜토리얼의 이 섹션에 있습니다.
경로 정의 규칙
라우팅을 사용하기 전에 URL이 PATH_INFO를 지원하는지(또는 URL 모드와 호환되는지, 일반 URL 모드 사용 시 라우팅 기능이 지원되지 않는지) 확인하고 다음 라우팅 설정이 활성화되어 있는지 확인하세요.
'URL_ROUTER_ON' => true
여기에는 ThinkPHP/Conf/convention.php 파일에서 찾을 수 있는 PATH_INFO 및 URL_ROUTER_ON이라는 두 가지 설정이 포함됩니다.
위 두 가지 조건을 충족한 후 라우팅 규칙을 구성할 수 있습니다. 구성을 위해 구성 파일에서 URL_ROUTE_RULES 매개변수를 사용합니다. 형식은 '라우팅 표현식' => '라우팅 주소 및 수신 매개변수'입니다.
'URL_ROUTE_RULES'=>array( 'blogs/:year/:month/:day' => array('Index/archive', 'status=1'), 'blogs/:id' => 'Index/read', ),
ThinkPHP는 정의된 순서대로 라우팅 규칙을 일치시키고 나면 실행을 위해 라우팅 정의에서 컨트롤러와 작업 방법을 찾고(다른 매개변수를 전달할 수 있음) 후속 규칙은 계속 일치하지 않습니다.
위 라우팅 구성 설명: 각 라우팅 표현식에서 : 뒤에는 매개변수 이름이 옵니다. 예를 들어 위의 :year, :month, :id 는 모두 매개변수 이름입니다. 예를 들면 다음과 같습니다. 인덱스 컨트롤러. 읽기 메서드인 이 메서드는 $id 매개변수를 허용합니다.
public function read($id){ echo "read page with" .$id; }
http://localhost:8999/index.php/Home/blogs/2를 입력하여 를 확인하세요.
read page with 2
'DEFAULT_MODULE' => 'Home'
첫 번째 규칙 배열의 상태('Index/archive', 'status=1')와 같은 추가 매개변수를 전달해야 하는 경우 이러한 매개변수를 여러 개 설정할 수 있습니다.
브라우저에 입력하는 경우:
http://localhost:8999/index.php/Home/blogs/string
처럼 적어주시면 됩니다.
'blogs/:id\d' => 'Index/read',
선택적 매개변수의 경우 다음과 같이 []를 사용하여 포함할 수 있습니다.
'blogs/:year/:month/[:day]' => array('Index/archive', 'status=1'),
ThinkPHP에서는 경로 접미사 제한 및 일반 경로 사용도 지원합니다.
일반적으로 일반적인 html, htm 및 기타 접미사를 사용하여 라우팅 접미사를 제한합니다.
'blogs/:id' => array('Index/read',array('ext'=>'html'))
정기노선
정규성 자체는 훌륭한 지식입니다. ThinkPHP의 정규 라우팅을 배우기 전에 정규식에 대한 확실한 기초를 갖추는 것이 가장 좋습니다.라우팅 표현식에서 지원하는 정규 정의는 /로 시작해야 합니다. 그렇지 않으면 다음과 같은 정규 표현식으로 간주됩니다.
'#^blog\/(\d+)$#' => 'Index/read'
'/^new/(d{4})/(d{2})$/' => '색인/아카이브?연도=:1&월=:2',
위의 경로는 올바른 정규 경로입니다. 정규식의 각 정규 규칙 하위 패턴(예: d{4} 및 d{2})에 대해 후속 라우팅 주소에서 참조해야 하는 경우 1, :2 메소드를 사용할 수 있습니다. 시퀀스 번호는 하위 패턴의 일련 번호입니다.
ThinkPHP 프레임워크에는 실제로 정적 라우팅이라는 라우팅 메커니즘이 있습니다. 이는 실제로 규칙 라우팅의 단순화된 정적 버전입니다. 라우팅 정의에는 동적 매개변수(예: 위 라우팅 규칙의 id 매개변수)가 포함되어 있지 않으며 정적 라우팅이 포함되어 있습니다. 라우팅 순회가 필요하지 않으므로 규칙이 직접 배치되므로 실행 효율성이 높아집니다. 정적 라우팅은 URL_MAP_RULES를 사용하여 규칙을 정의합니다.
'URL_ROUTER_ON' => true, 'URL_MAP_RULES'=>array( 'new/top' => 'Index/top?type=top' )
由于Index/top?type=top中Index表示控制器,第一个top表示方法,所以我们需要在Index控制器中创建top方法:
public function top(){ echo "top page </br>"; }
根据上面这条规则,如果我们访问到
http://localhost:8999/index.php/Home/new/top
其实我们访问的是:
http://localhost:8999/index.php/Home/index/top/type/top
转译成就是new/top对应的是index控制器的top方法,传人的参数为type,参数值为top,所以就有了index/top/type/top
但是,当我们访问http://localhost:8999/index.php/Home/new/top/var/test尽管URL地址前面也有new/top,然而由于静态路由是完整匹配的性质,所以不会匹配到index/top/type/top
以上所述就是本文的全部内容了,希望大家能够喜欢。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











ThinkPHP 프로젝트를 실행하려면 다음이 필요합니다: Composer를 설치하고, 프로젝트 디렉터리를 입력하고 php bin/console을 실행하고, 시작 페이지를 보려면 http://localhost:8000을 방문하세요.

ThinkPHP에는 다양한 PHP 버전용으로 설계된 여러 버전이 있습니다. 메이저 버전에는 3.2, 5.0, 5.1, 6.0이 포함되며, 마이너 버전은 버그를 수정하고 새로운 기능을 제공하는 데 사용됩니다. 최신 안정 버전은 ThinkPHP 6.0.16입니다. 버전을 선택할 때 PHP 버전, 기능 요구 사항 및 커뮤니티 지원을 고려하십시오. 최상의 성능과 지원을 위해서는 최신 안정 버전을 사용하는 것이 좋습니다.

ThinkPHP Framework를 로컬에서 실행하는 단계: ThinkPHP Framework를 로컬 디렉터리에 다운로드하고 압축을 풉니다. ThinkPHP 루트 디렉터리를 가리키는 가상 호스트(선택 사항)를 만듭니다. 데이터베이스 연결 매개변수를 구성합니다. 웹 서버를 시작합니다. ThinkPHP 애플리케이션을 초기화합니다. ThinkPHP 애플리케이션 URL에 접속하여 실행하세요.

Laravel과 ThinkPHP 프레임워크의 성능 비교: ThinkPHP는 일반적으로 최적화 및 캐싱에 중점을 두고 Laravel보다 성능이 좋습니다. Laravel은 잘 작동하지만 복잡한 애플리케이션의 경우 ThinkPHP가 더 적합할 수 있습니다.

ThinkPHP 설치 단계: PHP, Composer 및 MySQL 환경을 준비합니다. Composer를 사용하여 프로젝트를 만듭니다. ThinkPHP 프레임워크와 종속성을 설치합니다. 데이터베이스 연결을 구성합니다. 애플리케이션 코드를 생성합니다. 애플리케이션을 실행하고 http://localhost:8000을 방문하세요.

Apache Camel은 서로 다른 애플리케이션, 서비스 및 데이터 소스를 쉽게 통합하여 복잡한 비즈니스 프로세스를 자동화할 수 있는 ESB(Enterprise Service Bus) 기반 통합 프레임워크입니다. ApacheCamel은 경로 기반 구성을 사용하여 통합 프로세스를 쉽게 정의하고 관리합니다. ApacheCamel의 주요 기능은 다음과 같습니다. 유연성: ApacheCamel은 다양한 애플리케이션, 서비스 및 데이터 소스와 쉽게 통합될 수 있습니다. HTTP, JMS, SOAP, FTP 등을 포함한 여러 프로토콜을 지원합니다. 효율성: ApacheCamel은 매우 효율적이어서 많은 수의 메시지를 처리할 수 있습니다. 성능을 향상시키는 비동기 메시징 메커니즘을 사용합니다. 확장 가능

ThinkPHP는 캐싱 메커니즘, 코드 최적화, 병렬 처리 및 데이터베이스 최적화와 같은 장점을 갖춘 고성능 PHP 프레임워크입니다. 공식 성능 테스트에 따르면 초당 10,000개 이상의 요청을 처리할 수 있으며 JD.com, Ctrip과 같은 대규모 웹 사이트 및 엔터프라이즈 시스템에서 실제 응용 프로그램으로 널리 사용됩니다.

ThinkPHP 프레임워크의 홈페이지 파일은 웹사이트의 홈페이지를 정의하는 데 사용됩니다. 이 파일은 app/home/controller/IndexController.php에 있으며 홈페이지 요청 처리를 담당하는 index라는 작업 메서드를 포함하고 있습니다. 이 메소드는 홈페이지의 비즈니스 로직을 포함하고 app/home/view/index/index.html 보기 파일을 반환합니다.
