PHP에서 MVC 프레임워크를 배우는 방법

*文
풀어 주다: 2023-03-18 19:04:01
원래의
2339명이 탐색했습니다.

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&#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, ”, $request), ‘/&#39;); 
# 如果为空,则是访问根地址 
if (empty($url)) 
{ 
# 默认控制器和默认方法 
$class = ‘index&#39;; 
$func = ‘welcome&#39;; 
} 
else 
{ 
$URI = explode(‘/&#39;, $url); 
# 如果function为空 则默认访问index 
if (count($URI) < 2) 
{ 
$class = $URI[0]; 
$func = ‘index&#39;; 
} 
else 
{ 
$class = $URI[0]; 
$func = $URI[1]; 
} 
} 
# 把class加载进来 
include(APPPATH . ‘/&#39; . ‘application/controllers/&#39; . $class . ‘.php&#39;); 
#实例化 
$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&#39;; 
} 
} 
?> 
hello.php
<?php 
class Hello 
{ 
public function index() 
{ 
echo ‘hello world&#39;; 
} 
public function name($name) 
{ 
echo ‘hello ‘ . $name; 
} 
} 
?>
로그인 후 복사

테스트해보고 가능한지 확인해보세요 액세스할 수 있습니다. 위의 라우팅 구조에 따르면.

이 액세스는 정상이며, hello 클래스 내부의 name 메소드가 올바르게 호출되고 barbery 매개변수가 전달됩니다. . .

함수명을 입력하지 않고 다시 시도하여 기본적으로 인덱스 호출이 가능한지 확인해 보세요. .

대답도 그렇습니다. . .

마지막으로 루트 주소를 방문하여

도 기본 컨트롤러에 올바르게 매핑되어 있는지 확인하세요. . .

ok, 간단한 MVC 라우팅 기능이 완성되었습니다. . .

관련 권장사항:

PHP MVC 프레임워크 핵심 클래스

자신만의 PHP MVC 프레임워크 노트 작성

웹사이트 아키텍처에서 PHP MVC 패턴 구현 분석_PHP 튜토리얼

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿