PHP 웹 개발에 있어서는 개발 프레임워크와 자연스럽게 분리될 수 없습니다. 개발 프레임워크는 유연한 개발 방법, MVC 계층 분리, 비즈니스 분리 등을 제공합니다. 이 글은 PHP에서 MVC 프레임워크 라우팅을 배우기 위한 관련 정보를 주로 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다. 그것이 모두에게 도움이 되기를 바랍니다.
첫 번째 기사에서는 MVC 프레임워크의 라우팅 기능에 대해 더 간단하게 설명하겠습니다. . .
일반 단일 항목 프레임워크 라우팅의 구조는 다음과 같습니다.
domain/index.php/classname/functionname/var1/var2
여기서 index.php를 항목 파일이라고 합니다. . . 서버의 경우 여기에서 액세스하는 것은 index.php 이후에 호출되는 컨트롤러와 그 안에 있는 메서드뿐입니다. 심지어 값 전송도 PHP 수준을 기반으로 프레임워크 내에서 구현됩니다.
토크는 싸다, 코드를 보여주마!!
우선, 다음과 같은 파일구조를 만들어보자
한번 해보고 컨트롤러에서 파일에 어떻게 접근하는지 살펴보자. . .
index.php
print_r($_SERVER)에 다음 내용을 입력하세요.
그런 다음 다음 주소를 방문하여 시도해 보세요.
yourdomain/index.php/class/function/var1
여기 작성자는 로컬 환경을 사용하고 있습니다. 제가 방문하는 주소는 localhost/MVC/index.php/class/function/var1
제가 올린 주소가 가장 중요합니다. 2개의 변수
[REQUEST_URI] => /MVC/index.php/class/function/var1
[SCRIPT_NAME] => /MVC/index.php
사실 라우팅의 가장 기본적인 원칙은 다음과 같습니다.
이 두 변수를 사용하여 URL 주소에서 클래스, 함수, 매개변수 등을 추출한 다음 클래스를 포함하고 해당 함수를 호출한 후 PHP 콜백 함수 call_user_func_array를 통해 해당 매개변수를 전달합니다.
다음은 코드입니다. 제가 작성한 것보다 코드를 읽는 것이 더 이해하기 쉬울 것입니다. ㅎㅎ~~
index.php 내용은 다음과 같습니다.
<?php # 定义application路径 define(‘APPPATH', trim(__DIR__,'/')); # 获得请求地址 $root = $_SERVER['SCRIPT_NAME']; $request = $_SERVER['REQUEST_URI']; $URI = array(); # 获得index.php 后面的地址 $url = trim(str_replace($root, ”, $request), ‘/'); # 如果为空,则是访问根地址 if (empty($url)) { # 默认控制器和默认方法 $class = ‘index'; $func = ‘welcome'; } else { $URI = explode(‘/', $url); # 如果function为空 则默认访问index if (count($URI) < 2) { $class = $URI[0]; $func = ‘index'; } else { $class = $URI[0]; $func = $URI[1]; } } # 把class加载进来 include(APPPATH . ‘/' . ‘application/controllers/' . $class . ‘.php'); #实例化 $obj = new ucfirst($class); call_user_func_array( # 调用内部function array($obj,$func), # 传递参数 array_slice($URI, 2) );
application/controllers에 다음 2개의 파일을 추가하세요
index.php를 기본 컨트롤러로 사용하세요
<?php class Index { function welcome() { echo ‘I am default controller'; } } ?> hello.php <?php class Hello { public function index() { echo ‘hello world'; } public function name($name) { echo ‘hello ‘ . $name; } } ?>
테스트해보고 가능한지 확인해보세요 액세스할 수 있습니다. 위의 라우팅 구조에 따르면.
이 액세스는 정상이며, hello 클래스 내부의 name 메소드가 올바르게 호출되고 barbery 매개변수가 전달됩니다. . .
함수명을 입력하지 않고 다시 시도하여 기본적으로 인덱스 호출이 가능한지 확인해 보세요. .
대답도 그렇습니다. . .
마지막으로 루트 주소를 방문하여
도 기본 컨트롤러에 올바르게 매핑되어 있는지 확인하세요. . .
ok, 간단한 MVC 라우팅 기능이 완성되었습니다. . .
관련 권장사항:
웹사이트 아키텍처에서 PHP MVC 패턴 구현 분석_PHP 튜토리얼
위 내용은 PHP에서 MVC 프레임워크를 배우는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!