Maison  >  Article  >  développement back-end  >  PHP - Explication du modèle MVC et exemples

PHP - Explication du modèle MVC et exemples

王林
王林avant
2019-08-23 17:31:019968parcourir

1. Organigramme du modèle MVC

PHP - Explication du modèle MVC et exemples

2. 🎜> (1) Fonction

MVC comprend le contrôleur, le modèle et la vue.

Le rôle du contrôleur est d'appeler le modèle et la vue, de transmettre les données générées par le modèle à la vue et de laisser la vue les afficher

Le rôle du modèle est de obtenir les données et traiter les données renvoyées

La fonction de la vue est d'embellir les données obtenues et de les envoyer au terminal utilisateur

(2) Processus d'exécution

1 . Viewer-> Appelez le contrôleur et émettez des instructions

2. Contrôleur-> Sélectionnez le modèle approprié selon la commande

3. 🎜>

4. Contrôleur-> Sélectionnez la vue selon la commande

5. Vue -> Afficher les données obtenues

3. >

(1) Planification du répertoire

(2) Écriture de fichiers de classe 1. fichier de classe PHP - Explication du modèle MVC et exemples

règles de dénomination : test (nom) Controller (fichier du contrôleur).class.php (fichier de classe)

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

testModel.class.php Fichier de classe modèle
Règles de dénomination : test (nom du fichier modèle) Model (Fichier modèle).class.php Fichier de classe

<?php 
    class testModel{
        //获取数据
        function get(){
            return "hello world";
        }
    }
?>

3 testView.class.php Afficher le fichier de classe

<?php 
    class testView{
        //展示数据
        function display($data){
            echo $data;
        }
    }
?>

4.

Laissez-le appeler le contrôleur, et le contrôleur appelle le modèle et affiche

<?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();//调用方法
?>

5 Résultats d'exécution

4. .Amélioration simple de l'instance MVC----Encapsulation de méthode

PHP - Explication du modèle MVC et exemples

1. Encapsulez un objet qui instancie un contrôleur, etc. et une fonction qui appelle des méthodes

<?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. fichier index.php

Formulaire d'accès à l'URL du navigateur 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);
 
?>

Exécution des résultats

Navigateur accédez à http://localhost:8080/MVC/index.php?controller=test&method=show Afficher hello world

Pour plus de problèmes liés à PHP, veuillez visiter le site Web PHP en chinois :

Tutoriel vidéo PHP

PHP - Explication du modèle MVC et exemples

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer