Phroute를 사용한 빠른 PHP 라우팅
설치
여기에 사용할 데이터베이스 체계는 다음과 같습니다
-
우리는 정말 복잡한 것을 쓰지 않을 것입니다. 실제로, API 요청을 매우 기본적인 방식으로 모방하기 위해 일부 경로를 작성하는 것만으로도 충분합니다. 실제 API를 쓰고 싶다면 알아야 할 많은 개념이 있지만 오늘 우리는 단지 Phroute를 살펴보고 있습니다. .
참고 : array_slice 메소드의 두 번째 매개 변수는 개인 특정 프로젝트 설정으로 인해 "3"입니다. 기본 URL이 변경 될 때 변경하십시오 그 후, 우리는 RouteController 클래스의 인스턴스 인 객체 $ router를 사용하여 경로를 선언합니다. 그런 다음 매직은 $ dispatcher-> dispatch () 메소드에서 발생하며 두 가지 매개 변수, 즉 $ _server 요청 메소드 (get, post 등)와 특정 요청 URI를 취합니다. 이 정보를 사용하면 디스패처가 올바른 경로를 호출하고 폐쇄에서 코드를 실행합니다. 반환 값은 $ 응답 변수에 저장되며, 이는 JSON 문자열로 반영되는 메소드 프로세스 아우 티트 ()에 제공됩니다. 당신이 볼 수 있듯이,이 특정 예에서 우리는 단일 경로를 선언했습니다. 참고 : 원한다면 실제 구조를 향상시킬 수 있습니다. 새 파일을 만들고 loures.php를 호출하십시오. 그런 다음 $ router 객체 초기화 직후에 Main Index.php 파일에 포함시킵니다. 별도의 파일에 모든 경로가 있습니다. 내 생각에 더 우아한 솔루션. 즉, 당신은 이제 우리 예제의 기본 구조에 필요한 모든 것을 알고 있습니다. 첫 경로를 만들어 봅시다! 경로 간단한 경로 좋아요, 경로로 무엇을 할 수 있는지, 그리고 우리의 요구에 맞게 사용자 정의 할 수있는 양을 봅시다.
우리는 가장 간단한 것 : 저자 목록으로 시작하고 있습니다. 첫 번째 줄에서 우리는 경로 이름을 선언합니다. 경로를 테스트 해 봅시다 : 결과입니다 이제 우리는 한 걸음 앞으로 나아갈 수 있습니다 : 신분증을 감안할 때, 매개 변수를 추가하고, 싱글 저자의 세부 정보를 얻기 위해? . <:> 그런 것 :
{variable_name} 자리 표시자를 사용하여 매개 변수를 전달할 수 있으며, 클로저의 매개 변수와 동일한 선택된 이름과 동일합니다. 이 예에는 $ ID 매개 변수에 해당하는 {id} 자리 표시자가 있습니다. 원하는 매개 변수를 지정할 수 있습니다 : 제한 없음.때때로 매개 변수는 선택 사항이 될 수 있습니다. 또 다른 예를 들어 봅시다 : 책 URL을 사용하면 모든 데이터베이스 책의 목록을 검색하려고합니다. 그러나 Books/1과 같은 ID를 지정하면 주어진 카테고리의 책 목록을 얻을 것입니다. <:> 여기 우리는 간다 : 지금까지 우리는 경로 만 만들었습니다. 다른 HTTP 동사는 어떻습니까? 문제 없습니다. 여기를 살펴보십시오 : 포스트 경로를 예로 들어 봅시다. 이제 우리 컬렉션에 새 책을 추가 할 시간입니다! 책 데이터로 채울 양식이 있다고 상상해 봅시다 : 액션 속성은 지금 우리가 만든 책 경로를 가리킬 것입니다! 이제 우리는 또 다른 한 걸음을 내딛을 것입니다 : 이제 우리의 경로를“보호”할 시간입니다! 필터 실제로, Post Route에 들어가는 모든 사람은 우리 컬렉션에 새 책을 삽입 할 수 있습니다. 멋지지만 이것은 보통 사물이 아닙니다. 경로를 보호하고 싶다면 어떻게해야합니까? 필터는 우리에게 필요한 것입니다. 필터는 경로와 매우 유사합니다. 필터가 어딘가에 호출 될 때 실행되는 이름과 관련 폐쇄가 있습니다. 그래서 차이점은 무엇입니까? 필터는 경로 전에 (또는 후에) 쉽게 호출 할 수 있습니다.
필터
우선, 우리는 $ router 객체의 필터 () 메소드로 필터를 선언했습니다. 구문은 경로와 동일합니다. 우리는 적절한 시간에 실행될 이름과 폐쇄를 제공하고 있습니다.예를 들어 봅시다 : Ok,하지만“적절한 시간”은 무엇입니까? 우리는 지금 그것을 결정하고 있습니다 : 우리는 post () 메소드에 세 번째 매개 변수를 추가했습니다. 이 세 번째 매개 변수는 배열로 필터 이름 (logged_in)으로 키를 지정합니다. 이 순간부터 책 포스트 루트에 대한 모든 단일 호출 전에 logged_in 필터 (및 폐쇄 내용을 실행)도 호출됩니다. 이 특정 경우 사용자가 로그인되어 있는지 확인하기 위해 user_id 변수를 확인하고 있습니다. 경로 호출 직후 필터를 실행하는 데 사용되는 후 키도 있습니다. 예는 다음과 같습니다. 단일 문자열 대신 문자열 배열을 사용하기 만하면됩니다.
필터 그룹 실제 사례를 상상해 봅시다. logged_in 필터를 세 번 추가하는 것은 지루할 것입니다.
걱정하지 마세요 : 필터 그룹이 도움을주기 위해 여기에 있습니다. 참고 : 필요한 경우 다른 그룹으로 그룹으로 그룹을 둥지로 둥지를 틀 수도 있습니다. 성장 프로젝트? 컨트롤러를 사용할 시간! 우리의 프로젝트가 성장하고 있으며 단일 파일로 코드 기반을 구성하고 있습니다. 컨트롤러를 사용하는 것은 어떻습니까? 예 : Phroute는 단지 경로에 관한 것이 아닙니다. 일이 열리면 조직을 정리할 시간입니다. 우선, 컨트롤러의 구조가 어떤지 보자. 이 예제를 살펴보십시오 (우리는 그것을 loures.php 파일에 넣을 수 있습니다) : .{ "require": { "phroute/phroute": "1.*" } }
로그인 후 복사우리는 저자 클래스를 만들었습니다. 이 클래스에서는 두 가지 방법을 getIndex ()와 postAdd ()를 넣습니다. 그런 다음 $ router 객체의 컨트롤러 () 메소드를 사용하여 저자 URL을 저자 클래스에 연결합니다. 따라서 브라우저에서 URL 저자를 입력하면 getIndex () 메소드가 자동으로 호출됩니다. PostAdd () 메소드에 대해서도 동일하게 표시되며, 저자/add (post) url에 바인딩됩니다. 이 자동 해결 이름 기능은 매우 흥미롭지 만 실제로는 충분하지 않습니다. 컨트롤러 부분은 개발 초기 단계에 있으며 많은 개선이 필요합니다. 그중 하나는 컨트롤러 방법에 대한 매개 변수를 정의 할 수 있다는 것입니다. 또는 컨트롤러의 일부 방법에 대한 필터를 정의하는 쉬운 방법 ( "전부 또는 아무것도"가 아님). 결론
반면에, Phroute에는 정말 빠른 라우터가 제공됩니다. 프로젝트의 GitHub 페이지에서 Laravel의 핵심 라우터와 비교하는 데 대한 몇 가지 통계를 볼 수 있습니다. 결과는 놀랍습니다. 최악의 시나리오에서 Phroute는 약 40 배 더 빠릅니다.특히 컨트롤러쪽에는해야 할 일이 많이 있습니다. 개발자로서, 나는 모든 더러운 작업 (필터, 메소드 매개 변수 등)을 처리하기 위해 일반적인 기본 컨트롤러 클래스를 갖는 것이 좋을 것이라고 생각합니다. 문서도 부족합니다. 이 라우터 뒤에있는 "엔진"에 대한 구체적인 세부 정보를 알고 싶다면 Github의 Nikic 페이지를 방문하여 테스트, 벤치 마크 및 관련 결과로 모든 것을 설명 할 수 있습니다. .
당신은 Phroute를 시도 할 것입니까? 당신이 그것에 대해 어떻게 생각하는지 알려주세요! phroute 를 사용한 빠른 PHP 라우팅에 대한 자주 묻는 질문 (FAQ) Phroute 란 무엇이며 PHP 라우팅에서 중요한 이유는 무엇입니까? 내 PHP 응용 프로그램에 Phroute를 설치하는 방법은 무엇입니까?
Phroute를 쉽게 설치할 수 있습니다. Composer를 사용한 PHP 응용 프로그램, PHP 용 종속성 관리 도구. 공식 웹 사이트의 지침에 따라 작곡가를 설치할 수 있습니다. 작곡가가 설치되면 터미널에서 다음 명령을 실행하여 Phroute를 설치할 수 있습니다. 작곡가는 Phroute/Phroute가 필요합니다. 응용 프로그램에서 phroute를 다운로드하여 설치합니다.phroute를 사용하여 경로를 정의하는 방법은 무엇입니까?
phroute를 사용하여 경로를 정의하는 것은 간단합니다. 먼저 PhrouterOuteCollector 클래스의 인스턴스를 만들어야합니다. 그런 다음이 클래스의 경로 방법을 사용하여 경로를 정의 할 수 있습니다. 경로 메소드는 HTTP 메소드 (Get, Post 등), URL 패턴 및 핸들러 함수 또는 메소드의 세 가지 매개 변수를 취합니다. 예는 다음과 같습니다.$ router = new phrouterouteCollector (); $ router-> route ( 'get', '/user/{id}', function ($ id) {
return "사용자 ID : $ id";});
Phroute를 사용하여 경로 매개 변수를 처리하는 방법? 경로 매개 변수는 변할 수있는 URL의 일부입니다. Phroute에서는 경로를 정의 할 때 URL 패턴에 포함하여 경로 매개 변수를 정의 할 수 있습니다. 경로 매개 변수는 Curly Braces {}에 둘러싸여 있습니다. 경로가 일치하면 경로 매개 변수의 값이 핸들러 함수 또는 메소드로 인수로 전달됩니다. 예는 다음과 같습니다.
$ router = new phrouterouteCollector (); $ router-> route ( 'get', '/user/{id}', function ($ id) {return "사용자 ID : $ id";
Phroute와 함께 필터를 어떻게 사용합니까?
필터는 Phroute입니다. 경로 전후에 실행되는 기능 또는 방법이 일치합니다. 인증 또는 입력 유효성 검사와 같은 작업을 수행하는 데 사용할 수 있습니다. PhrouterouteCollector 클래스의 필터 메소드를 사용하여 필터를 정의 할 수 있으며 전과 후 방법을 사용하여 경로에 적용 할 수 있습니다. 예는 다음과 같습니다.
$ router = new phrouterouteCollector (); $ router-> filter ( 'augl', function () { if (! isset [ 'user'] ))) {> return false; } $ router-> rout ( 'get', '/dashboard', [ 'dashboardcontroller', 'show'])-> prever ( 'auth');phroute를 사용하여 404 오류를 처리하는 방법?
Phroute는 404 오류를 처리하는 간단한 방법을 제공합니다. 경로가 요청 된 URL과 일치 할 때 발생합니다. PhrouterouteCollector 클래스의 NotFound 메소드를 사용하여 404 핸들러를 정의 할 수 있습니다. 404 핸들러는 404 오류가 발생할 때 호출되는 기능 또는 방법입니다. 예는 다음과 같습니다.
다른 PHP와 함께 phroute를 사용할 수 있습니까? 프레임 워크?
$ router = new phrouterouteCollector ();
$ router-> notFound (function () {
return '404- 페이지를 찾을 수 없음';
Phroute와 함께 경로를 어떻게 파견합니까?
일단 경로를 정의한 후에는 Phrouteroutedispatcher 클래스. 이 클래스의 디스패치 방법은 HTTP 메소드와 URL을 매개 변수로 가져 와서 일치하는 경로의 처리기 기능 또는 메소드의 결과를 반환합니다. 예는 다음과 같습니다.
$ dispatcher = new phrouterouteDispatcher ($ router-> getData ()); $ response = $ dispatcher-> dispatch ($ _ server [ 'request_method'], $ _server [ 'request_uri ']); echo $ response;
예, 다른 PHP 프레임 워크와 함께 Phroute를 사용할 수 있습니다. Phroute는 독립형 라이브러리로 특정 프레임 워크에 의존하지 않음을 의미합니다. 사용중인 프레임 워크에 관계없이 모든 PHP 응용 프로그램에서 사용할 수 있습니다. 그러나 프레임 워크의 라우팅 시스템으로 작업하려면 코드를 조정해야 할 수도 있습니다.
phroute에서 경로를 디버그하는 방법은 무엇입니까? $ router = new phrouterouteCollector (); $ router-> route ( 'get', '/user/{id}', function ($ id) {
try { $ dispatcher = new phrouteroutedispatcher ($ router-> getData ()); $ dispatcher-> dispatch ($ _ server [ 'request_method'], $ _server [ 'request_uri']);
return "사용자 ID : $ id"; });
print_r ($ router-> debug ());
어떻게 처리합니까? Phroute의 예외?
Phroute의 예외는 Try-Catch 블록으로 디스패치 코드를 래핑하여 처리 할 수 있습니다. 디스패치 과정에서 예외가 발생하면이를 잡아서 적절하게 처리 할 수 있습니다. 예는 다음과 같습니다.echo $ response;
} catch (예외 $ e) { echo '오류가 발생했습니다 :'. $ e-> getMessage ();}
위 내용은 Phroute를 사용한 빠른 PHP 라우팅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

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

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

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

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

PHP에는 4 가지 주요 오류 유형이 있습니다. 1. NOTICE : 가장 작은 것은 정의되지 않은 변수에 액세스하는 것과 같이 프로그램을 방해하지 않습니다. 2. 경고 : 심각한 통지는 파일을 포함하지 않는 것과 같은 프로그램을 종료하지 않습니다. 3. FatalError : 가장 심각한 것은 기능을 부르는 것과 같은 프로그램을 종료합니다. 4. parseerror : 구문 오류는 엔드 태그를 추가하는 것을 잊어 버리는 것과 같이 프로그램이 실행되는 것을 방지합니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP에서 Password_hash 및 Password_Verify 기능을 사용하여 보안 비밀번호 해싱을 구현해야하며 MD5 또는 SHA1을 사용해서는 안됩니다. 1) Password_hash는 보안을 향상시키기 위해 소금 값이 포함 된 해시를 생성합니다. 2) Password_verify 암호를 확인하고 해시 값을 비교하여 보안을 보장합니다. 3) MD5 및 SHA1은 취약하고 소금 값이 부족하며 현대 암호 보안에는 적합하지 않습니다.

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

HTTP 요청 방법에는 각각 리소스를 확보, 제출, 업데이트 및 삭제하는 데 사용되는 Get, Post, Put and Delete가 포함됩니다. 1. GET 방법은 리소스를 얻는 데 사용되며 읽기 작업에 적합합니다. 2. 게시물은 데이터를 제출하는 데 사용되며 종종 새로운 리소스를 만드는 데 사용됩니다. 3. PUT 방법은 리소스를 업데이트하는 데 사용되며 완전한 업데이트에 적합합니다. 4. 삭제 방법은 자원을 삭제하는 데 사용되며 삭제 작업에 적합합니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7

PHP는 $ \ _ 파일 변수를 통해 파일 업로드를 처리합니다. 보안을 보장하는 방법에는 다음이 포함됩니다. 1. 오류 확인 확인, 2. 파일 유형 및 크기 확인, 3 파일 덮어 쓰기 방지, 4. 파일을 영구 저장소 위치로 이동하십시오.

phpoop에서 self ::는 현재 클래스를 말하며, Parent ::는 부모 클래스를 말하며, static ::는 늦은 static 바인딩에 사용됩니다. 1. self :: 정적 방법과 일정한 호출에 사용되지만 늦은 정적 바인딩을 지원하지는 않습니다. 2.parent :: 하위 클래스가 상위 클래스 방법을 호출하는 데 사용되며 개인 방법에 액세스 할 수 없습니다. 3. Static ::는 상속 및 다형성에 적합한 후기 정적 결합을 지원하지만 코드의 가독성에 영향을 줄 수 있습니다.
