PHP에서 MVC의 일부 부분은 이해하기 쉽습니다. 예를 들어 M은 특정 비즈니스 로직을 완성하는 모델 모델이고, V는 정보 표시를 담당하는 뷰 뷰입니다. 주문 발행 및 방법 구별 프론트 데스크에서 요청이 오면 이를 처리하는 데 사용할 방법을 결정한 다음 PHP에서 MVC 원칙을 구현합니까? MVC 원리를 심층적으로 이해하기 위해 코드를 사용해 보겠습니다.
1. 파일 구조
폴더 3개 생성
컨트롤러 파일 저장을 위한 컨트롤러 폴더
뷰 파일 저장을 위한 뷰 폴더
데이터 파일 저장을 위한 모델 폴더
유일한 입구로 index.php 1개 생성
2. 컨트롤러 폴더에 Democontroller.php 파일을 생성합니다. 파일 내용은 다음과 같습니다.
<?php class DemoController { function index() { echo('hello world'); } } /* End of file democontroller.php */
<?php require('controller/democontroller.php'); $controller=new DemoController(); $controller->index(); /* End of file index.php */
<?php $c_str=$_GET['c']; //获取要运行的controller $c_name=$c_str.'Controller'; //按照约定url中获取的controller名字不包含Controller,此处补齐。 $c_path='controller/'.$c_name.'.php'; //按照约定controller文件要建立在controller文件夹下,类名要与文件名相同,且文件名要全部小写。 $method=$_GET['a']; //获取要运行的action require($c_path); //加载controller文件 $controller=new $c_name; //实例化controller文件 $controller->$method(); //运行该实例下的action /* End of file index.php */
1. PHP는 new 문자열을 직접 사용하여 원하는 객체를 얻고 원하는 메서드, 즉 위의 new를 실행할 수 있습니다.
$c_name, 새로운 것으로 이해하면 됩니다
'DemoController', $c_name 자체의 값이 'DemoController'이기 때문에 물론 직접적으로 새로운 것입니다.
이와 같이 'DemoController'를 작성하는 것은 불가능합니다. 'DemoController' 문자열은 변수를 통해 전달되어야 합니다. 방법은 동일합니다.
2 URL의 c 값은 $c_name을 의미하는 데모입니다.
값은 decoController여야 합니다. PHP는 대소문자를 구분하지 않나요? 그래도 이렇게 실행할 수 있나요? "php는 대소문자를 구분합니다"라는 문장은 불완전합니다. PHP에서는 변수(앞에 $)와 상수(define으로 정의됨)만 대소문자를 구분하지만 클래스 이름, 메서드 이름 및 일부 키워드는 대소문자를 구분하지 않습니다. 쓴. 그리고 true, false, null 등은 모두 대문자이거나 모두 소문자일 수 있습니다. 물론 실제 인코딩 프로세스에서는 대소문자를 구분하는 것이 좋습니다.
3. View
mvc의 효과를 얻지 못한 이전 컨트롤러에서 "hello world"를 출력했습니다. 다음으로 이를 기반으로 뷰 기능을 추가하겠습니다. 보기 기능을 추가하는 방법입니다. 그렇습니다. 그것은 악한 요구나 포함을 통해 달성됩니다. 먼저 뷰 폴더에 index.php를 만들고 무엇이든 작성합니다(하하, 저는 여전히 hello world를 썼습니다). 그런 다음 이전 DemoController를 다시 작성합니다. 코드는 다음과 같습니다.
<?php class DemoController { function index() { require('view/index.php'); } } /* End of file democontroller.php */
<?php class DemoController { function index() { $data['title']='First Title'; $data['list']=array('A','B','C','D'); require('view/index.php'); } } /* End of file democontroller.php */
<html> <head> <title>demo</title> </head> <body> <h1><?php echo $data['title'];?></h1> <?php foreach ($data['list'] as $item) { echo $item.'<br>'; } ?> </body> </html>
위 내용은 PHP에서 mvc의 원리는 무엇입니까? PHP의 mvc 구현 원리 소개(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!