> 백엔드 개발 > PHP 튜토리얼 > MVC 프레임워크 PHP는 자체 MVC 프레임워크를 만듭니다.

MVC 프레임워크 PHP는 자체 MVC 프레임워크를 만듭니다.

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-07-29 08:48:14
원래의
1017명이 탐색했습니다.

1. 파일 구조
폴더 3개 생성
컨트롤러 폴더는 컨트롤러 파일 저장
뷰 폴더는 뷰 파일 저장
모델 폴더는 데이터 파일 저장
유일한 입구로 index.php 1개 생성
2. Controller
Controller 폴더 아래에 decocontroller.php 파일을 생성합니다. 파일 내용은 다음과 같습니다.

코드를 복사하세요 코드는 다음과 같습니다:


class DemoController
{
function index()
{
echo('hello world')
}
}
/* 파일 끝 decocontroller.php */


이 파일에는 DemoController라는 개체를 생성했으며 hello world를 출력하는 인덱스 메서드가 포함되어 있습니다. 다음으로 index.php의 DemoController에서 index 메소드를 실행합니다.
index.php 코드는 다음과 같습니다

코드 복사 코드는 다음과 같습니다


< ?php
require( 'controller/democontroller.php');
$c DemoController()
$controller->index()/* 파일 끝 index.php */

index.php를 실행합니다. 예상대로 우리는 오랫동안 잃어버린 Hello World를 보았습니다. 이 두 파일은 매우 간단하지만 유일한 입구를 통해 실행하려는 컨트롤러를 실행하는 MVC의 본질을 약간 드러냅니다. 물론 컨트롤러 부분은 uri에 의해 결정되어야 하므로 uri를 통해 실행할 컨트롤러를 결정할 수 있도록 index.php를 다시 작성해 보겠습니다.
index.php는 다음과 같이 코드를 다시 작성합니다.

코드 복사 코드는 다음과 같습니다.

< ?php
$ c_str=$_GET['c'];
//실행할 컨트롤러 가져오기
$c_name=$c_str.'Controller'
//약정에 따라 URL에서 얻은 컨트롤러 이름에는 Controller가 포함되어 있지 않습니다.
$c_path='controller/'.$c_name.'.php';
//약관에 따라 컨트롤러 파일은 컨트롤러 폴더에 생성되어야 하며, 클래스 이름은 파일과 동일해야 합니다. 이름, 파일 이름은 모두 소문자여야 합니다.
$method=$_GET['a'];
//실행할 작업 가져오기
require($c_path)
//컨트롤러 파일 로드
$c $c_name;
//컨트롤러 파일 인스턴스화
$controller->$method()
//이 인스턴스에서 작업 실행
/* 파일 끝 index.php */

브라우저에 http://localhost/index.php?c=demo&a=index를 입력하면 Hello World가 표시됩니다. 물론, 다른 컨트롤러가 있고 이를 실행하려면 url 매개변수에서 c와 a 값만 수정하면 됩니다.
여기서 설명할 몇 가지 문제가 있습니다.
1. PHP는 동적 언어입니다. new 문자열, 즉 위의 새 $c_name을 통해 원하는 객체를 직접 가져오고 원하는 메서드를 실행할 수 있으므로 new 'DemoController'로 이해할 수 있습니다. $c_name 값 자체는 'DemoController'입니다. 물론 'DemoController'를 직접 작성하는 것은 불가능합니다. 방법은 동일합니다.
2. URL의 c 값은 데모입니다. 즉, $c_name의 값은 decoController여야 합니다. PHP는 대소문자를 구분하지 않나요? "php는 대소문자를 구분합니다"라는 문장은 불완전합니다. PHP에서는 변수(앞에 $)와 상수(define으로 정의됨)만 대소문자를 구분하지만 클래스 이름, 메서드 이름 및 일부 키워드는 대소문자를 구분하지 않습니다. 쓴. 그리고 true, false, null 등은 모두 대문자이거나 모두 소문자일 수 있습니다. 물론 실제 인코딩 프로세스에서는 대소문자를 구분하는 것이 좋습니다.
3. 뷰
이전 컨트롤러에서는 mvc의 효과를 얻지 못한 "hello world"만 출력했습니다. 다음으로 이를 기반으로 뷰 기능을 추가하겠습니다. 이제 보기 기능을 추가하는 방법을 알아보겠습니다. 그렇습니다. 그것은 악한 요구나 포함을 통해 달성됩니다.
먼저 뷰 폴더 아래에 index.php를 만들고 무엇이든 작성합니다(하하, 저는 여전히 hello world를 썼습니다). 그런 다음 이전 DemoController를 다시 작성합니다. 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

class DemoController
{
function index()
{
require('view/index.php')
}
}
/* 파일 끝 decocontroller.php */

다시 브라우저에서 실행하여 원하는 내용이 출력되었는지 확인해 보세요.
그런 다음 컨트롤러를 통해 일부 데이터를 뷰에 전달합니다.

코드를 복사합니다. 코드는 다음과 같습니다.

class DemoController
{
function index()
{
$data['title']='첫 번째 제목'
$data['list'] =array('A','B','C','D')
require('view/index.php')
}
}
/* 파일 끝 decocontroller.php */

view 폴더 아래 index.php 파일 코드는 다음과 같습니다.

코드를 복사하세요 코드는 다음과 같습니다.


demo 헤드>
<본문>


foreach($ 데이터['목록']($item)
{
echo $item.'
'
}
?> ;/html>

위에서는 mvc 프레임워크를 소개했는데, PHP는 mvc 프레임워크의 내용을 포함하여 자체 MVC 프레임워크를 만들 수 있습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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