> 백엔드 개발 > PHP 튜토리얼 > PHP - MVC 패턴 설명 및 예

PHP - MVC 패턴 설명 및 예

王林
풀어 주다: 2023-04-07 10:08:01
앞으로
10028명이 탐색했습니다.

1. MVC 패턴 흐름도

PHP - MVC 패턴 설명 및 예

2. MVC 개념

(1) 기능

MVC에는 Controller, Model, View가 포함됩니다.

컨트롤러의 역할은 모델과 뷰를 호출하고, 모델에서 생성된 데이터를 뷰에 전달하고, 뷰가 이를 표시하도록 하는 것입니다.

모델의 역할은 데이터를 얻고 반환된 데이터를 처리하는 것입니다.

뷰의 역할은 획득한 데이터를 아름답게 하고

(2) 실행 프로세스를 사용자 터미널로 출력하는 것입니다.

1. 컨트롤러 호출 및 명령 실행

2.

3. 모델 -> 명령으로 데이터 가져오기

4. 컨트롤러-> 명령으로 보기 선택 -> 얻은 데이터를 표시합니다. example

(1) 디렉토리 계획

(2) 클래스 파일 작성 1.testController.class.php 컨트롤러 클래스 파일 PHP - MVC 패턴 설명 및 예

네이밍 규칙: test(이름) Controller(컨트롤러 파일).class .php (클래스 파일)

<!-- 
 首先实例化控制器对象,并调用指令方法,
 方法里面实例化模型对象,调用取数据方法
 并实例化视图对象,调用展示方法
  -->
  <!-- 
 控制器的方法没有参数,而其他的就有参数
   -->
<?php
    // 类名和文件名相同 
    class testController{
        function show(){
            
            $testModel = new testModel();//按指令选择一个模型
            $data = $testModel -> get();//模型按照指令取数据
            //按指令选择视图 实例化一个view的对象
            $testView  = new testView();
            //把取到的数据按用户的样子显示出来
            $testView -> display($data);
        }
    }
?>
로그인 후 복사

2. testModel.class.php 모델 클래스 파일
명명 규칙: test (모델 파일 이름) Model (모델 파일).class.php 클래스 파일

<?php 
    class testModel{
        //获取数据
        function get(){
            return "hello world";
        }
    }
?>
로그인 후 복사

3. 수업 파일 보기

<?php 
    class testView{
        //展示数据
        function display($data){
            echo $data;
        }
    }
?>
로그인 후 복사

4 .단일 항목 파일

                                                                                     >                                    컨트롤러를 호출하고 컨트롤러는 모델과 뷰를 호출

<?php
//引入类文件
require_once(&#39;/libs/Controller/testController.class.php&#39;);
require_once(&#39;/libs/Model/testModel.class.php&#39;);
require_once(&#39;/libs/View/testView.class.php&#39;);
 
//类的实例化
$testController = new testController();//对象赋值给变量
$testController->show();//调用方法
?>
로그인 후 복사

1. 컨트롤러 등을 인스턴스화하는 객체와 메서드를 호출하는 함수를 캡슐화

<?php
 
    //控制器名字和要执行的方法
    function C($name,$method){
        require_once(&#39;/libs/Controller/&#39;.$name.&#39;Controller.class.php&#39;);
        //对象赋值给变量
        // $testController = new testController();
        // $testController->show();
        eval(&#39;$obj = new &#39;.$name.&#39;Controller();$obj->&#39;.$method.&#39;();&#39;);//把字符串转换为可执行的php语句
    }
    //封装一个实例化模型的对象和调用方法的函数
    function M($name){
        require_once(&#39;/libs/Model/&#39;.$name.&#39;Model.class.php&#39;);
        //$testModel = new testModel();
        eval(&#39;$obj = new &#39;.$name.&#39;Model();&#39;);//实例化
        return $obj;
    }
 
    //封装一个实例化视图的对象和调用方法的函数
    function V($name){
        require_once(&#39;/libs/View/&#39;.$name.&#39;View.class.php&#39;);
            //$testView  = new testView();
            eval(&#39;$obj = new &#39;.$name.&#39;View();&#39;);
            return $obj;
    }
 
    //为了安全性 ,过滤函数
    //addslashes对’,字符进行转义
    //get_magic_quotes_gpc()当前魔法符号的打开状态,打开返回true,
    function daddslashes($str){
        return (!get_magic_quotes_gpc() )? addslashes($str) : $str;
    }
?>
로그인 후 복사

2. 항목 파일 index.php

다시 작성               브라우저 URL 액세스 양식 http://...index.php?controller =Controller name&method=Method name

<?php 
require_once(&#39;function.php&#39;);
 
//允许访问的控制器名和方法名的数组
$controllerAllow=array(&#39;test&#39;,&#39;index&#39;);
$methodAllow =array(&#39;test&#39;,&#39;index&#39;,&#39;show&#39;);
//用get方式接收url中的参数
//过滤输入非法字符  并判断是否在数组里
$controller = in_array($_GET[&#39;controller&#39;],$controllerAllow )? daddslashes($_GET[&#39;controller&#39;]) :&#39;index&#39; ;
$method = in_array($_GET[&#39;method&#39;],$methodAllow) ? daddslashes($_GET[&#39;method&#39;]) :&#39;index&#39;;
//调用控制器和执行方法
C($controller,$method);
 
?>
로그인 후 복사

3. 실행 결과

PHP - MVC 패턴 설명 및 예브라우저 액세스 http://localhost :8080/MVC/index.php?controller=test&method=show Display hello world

더 알고 싶습니다. PHP 관련 질문이 더 필요하시면 PHP 중국어 웹사이트를 방문해 주세요:

PHP 비디오 튜토리얼

위 내용은 PHP - MVC 패턴 설명 및 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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