>  기사  >  백엔드 개발  >  PHP MVC 프레임워크의 라우팅 기능을 구현하는 방법.

PHP MVC 프레임워크의 라우팅 기능을 구현하는 방법.

小云云
小云云원래의
2017-11-13 14:01:132494검색

현재 PHP는 널리 사용되는 프로그래밍 언어입니다. PHP 개발을 수행하는 한 개발 프레임워크는 유연한 개발 방법, MVC 계층 분리, 비즈니스 분리 등을 제공합니다. 우리의 개발은 더 빠르고 편리해졌습니다. 그러나 많은 사람들은 프레임워크를 사용하는 방법만 알고 프레임워크의 내부가 어떻게 구현되는지 전혀 이해하지 못합니다. 이는 프로그래밍 능력을 향상시키는 데 아무 소용이 없습니다. 따라서 이 기사에서는 더 간단한 기능, 즉 일반적인 단일 입력 상자 MVC 프레임워크의 라우팅 기능 구현 방법부터 시작하겠습니다. 경로는 모두 다음과 같이 구성됩니다: localhost/MVC/index.php/classname/functionname/var1/var2. 여기서 index.php를 일반적으로 항목 파일이라고 합니다. 서버의 경우 여기에서 액세스하는 것은 index.php 이후에 호출되는 컨트롤러와 그 안에 있는 메서드뿐입니다. 심지어 값 전송도 PHP 수준을 기반으로 프레임워크 내에서 구현됩니다. 다음으로 MVC 프레임워크의 라우팅 기능을 간단히 구현하겠습니다.

1 먼저 MVC 파일 구조를 설정합니다

PHP MVC 프레임워크의 라우팅 기능을 구현하는 방법.

이제 시험해보고 컨트롤러에서 파일에 액세스하는 방법을 살펴보겠습니다.

index.php에 다음 내용을 입력하세요.

<?php  
/**  
 * MVC路由功能简单实现 
 * @desc 简单实现MVC路由功能 
 * $Author: Zhihua_W  
 */     
//打印出所有的服务器变量  
print_r($_SERVER);   
?>

그런 다음 액세스 주소를 입력하여 시도해 보세요. 여기서는 로컬 환경을 사용하고 있으며 액세스하는 주소는 localhost/MVC/index.php/class/function/var1입니다. 아래에는 가장 중요한 두 가지 변수가 게시되어 있습니다.

[REQUEST_URI] => /MVC/index.php/class/function/var1  
[SCRIPT_NAME] => /MVC/index.php

2. Index.php 파일 콘텐츠

<?php  
/** 
 * MVC路由功能简单实现 
 * @desc 简单实现MVC路由功能 
 * $Author: Zhihua_W 
 */  
//定义application路径     
define(&#39;APPPATH&#39;, trim(__DIR__ . &#39;/&#39;));  
//获得请求地址     
$root = $_SERVER[&#39;SCRIPT_NAME&#39;];  
$request = $_SERVER[&#39;REQUEST_URI&#39;];  
$URI = array();  
//获得index.php 后面的地址     
$url = trim(str_replace($root, &#39;&#39;, $request), &#39;/&#39;);  
//如果为空,则是访问根地址     
if (empty($url)) {  
    //默认控制器和默认方法  
    $class = &#39;index&#39;;  
    $func = &#39;welcome&#39;;  
} else {  
    $URI = explode(&#39;/&#39;, $url);  
  
    //如果function为空 则默认访问index     
    if (count($URI) < 2) {  
        $class = $URI[0];  
        $func = &#39;index&#39;;  
    } else {  
        $class = $URI[0];  
        $func = $URI[1];  
    }  
}  
 //把class加载进来     
include(APPPATH . &#39;/&#39; . &#39;application/controllers /&#39; . $class . &#39;.php&#39;);  
  
//实例化->将控制器首字母大写    
$obj = ucfirst($class);  
  
call_user_func_array(  
//调用内部function     
    array($obj, $func),  
    //传递参数     
    array_slice($URI, 2)  
);  
?>

3 애플리케이션/컨트롤러에 다음 2개 파일(index.php, hello.php)을 추가합니다. ① index.php

<?php
 * MVC路由功能简单实现 
 * @desc 简单实现MVC路由功能 
 * $Author: Zhihua_W 
 */  
class Index  
{  
    function welcome()  
    {  
        # code...  
        echo "default covtroller!";  
    }  
}  
?>

② hello.php

<?php
/** 
 * MVC路由功能简单实现 
 * @desc 简单实现MVC路由功能 
 * $Author: Zhihua_W 
 */  
class Hello{  
    public function index(){  
        echo "hello world!";  
    }  
    public function name($name){  
        echo "hello ".$name;  
    }  
}  
?>  ] view plain copy
<?php  
/**
4. Test

테스트해서 접속이 되는지 확인해 보세요. 위의 라우팅 구조에 따르면. 시도해 볼 수 있습니다. 테스트를 통해 액세스가 정상이고 hello 클래스 내부의 name 메소드가 올바르게 호출된 다음 매개변수 jack이 전달되는 것을 확인할 수 있습니다. 기본적으로 인덱스를 호출할 수 있는지 확인하려면 함수 이름을 다시 입력하지 마세요. 대답은 '예'입니다. 마지막은 루트 주소를 방문하여 해당 주소가 기본 컨트롤러에도 올바르게 매핑되어 있는지 확인하는 것입니다. (테스트 결과 사진은 스크린샷 없이 올려드립니다.)

이렇게 해서 간단한 MVC 라우팅 기능이 완성되었습니다.

관련 권장 사항:

MVC 프레임워크란 무엇입니까?

PHP의 MVC 프로그래밍 이해 - MVC 프레임워크 소개

PHP를 사용하여 나만의 MVC 프레임워크 구축

위 내용은 PHP MVC 프레임워크의 라우팅 기능을 구현하는 방법.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.