Composer 로 자신의 PHP 프레임 워 크 를 구축 하 는 경로

이전 편 에서 우 리 는 빈 Composer 프로젝트 를 만 들 었 습 니 다.이 편 은 길 을 어떻게 구축 하 는 지 설명 할 것 입 니 다.
오랫동안 명성 을 떨 친 CodeIgniter 프레임 워 크 는 많은 사람들의 PHP 개발 입문 프레임 워 크 이자 제 가 처음부터 웹 사 이 트 를 구축 하 는 방법 을 배우 기 시 작 했 습 니 다.CI 에서 저 는 많은 것 을 배 웠 습 니 다.그 중에서 MVC 에 대한 깊 은 이해 와 구조 본질 에 대한 이해 가 저 에 게 가장 큰 영향 을 주 었 습 니 다.프레임 워 크 를 사용 하 는 것 은 개발 효율 을 높이 기 위 한 측면 에서 볼 때 프레임 워 크 의 본질은 바로 경로 이다.
다음은 우리 가 스스로 길 을 구축 하기 시작 할 것 이다.먼저 GitHub 에 가서 찾 아 보 자검색 결과 보기
추천https://github.com/NoahBuscher/Macaw해당 되 는 Composer 가방 은 codingbean/macaw 입 니 다.저 자 는 GitHub 에서 이름 을 바 꾸 었 을 것 입 니 다.이것 은 어느 정도 어려움 을 초래 할 수 있 습 니 다.다음은 Macaw 패 키 지 를 설치 하고 composer.json 을 변경 합 니 다.

{ "require": {  "codingbean/macaw": "dev-master" }}
composer update 를 실행 하면 다음 디 렉 터 리 를 얻 을 수 있 습 니 다.

이로써 Macaw 패키지 설치 성공!
다음은 기적 을 보 는 순간!우 리 는 MFCC 에 생명력 을 부여 하여 그것 이 진정 으로 달 릴 수 있 도록 할 것 이다!
새 MFCC/public 폴 더 를 만 듭 니 다.이 폴 더 는 사용자 가 유일 하 게 볼 수 있 는 부분 입 니 다.폴 더 아래 에 index.php 파일 을 새로 만 듭 니 다:

<?php// Autoload     require '../vendor/autoload.php';//     require '../config/routes.php';
위의 줄 은 Composer 를 도입 하 는 자동 불 러 오기 기능 을 표시 하고,아래 줄 은 루트 설정 파일 을 불 러 오 는 것 을 표시 합 니 다.새 MFCC/config 폴 더 를 만 듭 니 다.새 routs.php 파일 을 만 듭 니 다.내용 은 다음 과 같 습 니 다.

<?phpuse NoahBuscher\Macaw\Macaw;Macaw::get('fuck', function() { echo "  !";});Macaw::get('(:all)', function($fu) { echo '      <br>'.$fu;});Macaw::dispatch();
Macaw 의 문서 는https://github.com/NoahBuscher/MacawHTTP 서비스 소프트웨어 형식 에 따라 위 정적 을 설정 하 십시오.사실은 대부분의 프레임 워 크 와 같 습 니 다."모든 비 정적 파일 을 index.php 로 가리 키 십시오."
그리고 어떤 포트 를 Apache 나 Nginx 로 MFFC/public 디 렉 터 리 에 할당 합 니 다.이 단 계 는 Apache 나 Nginx 로 하 는 것 을 권장 합 니 다.
PHP 로 HTTP 서버 를 내장 하면:

cd public && php -S 127.0.0.1:3000
경로 의 Macaw::get('fuck'은 Macaw::get('/fuck'이 라 고 써 야 응답 할 수 있 습 니 다.
현재 코드 는 Apache+mod 사용php 와 Nginx+php-fpm 방식 은 모두 문제 가 없습니다.
로 컬 에 81 포트 를 연결 하여 접근 하 였 습 니 다.http://127.0.0.1:81/fuck 볼 수 있 습 니 다:

페이지 가 어 지 러 우 면 인 코딩 을 UTF-8 로 조정 하 십시오.위 페이지 를 성공 적 으로 보 았 다 면,경로 설정 성공 을 축하합니다!
Macaw 는 하나의 파일 만 있 습 니 다.빈 줄 을 제거 하면 모두 100 줄 이 넘 습 니 다.코드 를 통 해 우 리 는 그것 이 어떻게 일 하 는 지 직접 볼 수 있 습 니 다.다음은 제 가 간략하게 분석 해 보 겠 습 니 다.
1.Composer 는 URL 이 MFCC/public/index.php 를 구동 할 때마다 메모리 에 모든 네 임 스페이스 클래스 를 파일 이름 으로 불 러 오 는 배열 을 자동 으로 불 러 옵 니 다.코드 에서 어떤 종 류 를 사용 할 때 이 클래스 가 있 는 파일 을 자동 으로 불 러 옵 니 다.
2.우 리 는 루트 파일 에 Macaw 클래스 를 불 러 왔 습 니 다."use Noah Buscher\Macaw\Macaw;",이 어 두 번 의 정적 방법 을 호출 했다.get(),이 방법 은 존재 하지 않 습 니 다.MFCC/vendor/codingbean/macaw/macaw.php 의callstatic()인수.
3.이 함 수 는 두 개의 인자,$method 와$params 를 받 아들 입 니 다.전 자 는 구체 적 인 function 이름 입 니 다.여기 서 get 입 니 다.후 자 는 이번에 전 달 된 매개 변수 입 니 다.즉,Macaw:get('fuck',function(){...}의 두 개의 매개 변수 입 니 다.첫 번 째 매개 변 수 는 우리 가 감청 하고 자 하 는 URL 값 입 니 다.두 번 째 매개 변 수 는 PHP 패키지 입 니 다.리 셋 으로 URL 이 성공 한 후에 우리 가 하고 싶 은 일 을 의미 합 니 다.
4.__callstatic()은 대상 URL(즉/fuck),HTTP 방법(즉 GET),리 셋 코드 를$routes,$methods,$callbacks 세 개의 Macaw 클래스 의 정적 구성원 변수(배열)에 누 르 는 것 도 간단 합 니 다.
5.파일 의 마지막 줄 에 있 는 Macaw:dispatch();방법 이 야 말로 현재 URL 을 진정 으로 처리 하 는 곳 이다.직접 일치 할 수 있 는 것 은 바로 리 셋 을 호출 합 니 다.직접 일치 하지 않 는 것 은 정규 로 일치 합 니 다.

좋은 웹페이지 즐겨찾기