美高梅开户-美高梅官方网站开户

您的位置:美高梅开户 > 美高梅官方网站开户 > php创设属于本身的MVC框架,php不难实现MVC

php创设属于本身的MVC框架,php不难实现MVC

发布时间:2019-08-09 19:20编辑:美高梅官方网站开户浏览(138)

    图片 1

    <?php
    class DemoController
    {
    function index()
    {
    echo('hello world');
    }
    }
    /* End of file democontroller.php */

    Welcome to furzoom.com
    如下图:

    复制代码 代码如下:

     // model/model.php
     class Model {
         private $data = array(
                     'title' => 'Hello furzoom',
                     'welcome' => 'Welcome to furzoom.com',
                     );
         public function getData($key) {
             return $this->data[$key];
         }
     }
     // End of model.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 */

    PHP中的MVC

    <?php
    class DemoController
    {
    function index()
    {
    require('view/index.php');
    }
    }
    /* End of file democontroller.php */

    假设想获得越来越美观的U奥迪Q3L结构,能够展开优化,为由那U牧马人L结构优化与本文关系一点都不大,未来实行共享。

    <html>
    <head>
    <title>demo</title>
    </head>
    <body>
    <h1><?php echo $data['title'];?></h1>
    <?php
    foreach ($data['list'] as $item)
    {
    echo $item.'<br>';
    }
    ?>
    </body>
    </html>

    复制代码 代码如下:

    一、文件结构
    创造3个文件夹
    controller文件夹贮存调控器文件
    view文件夹存放视图像和文字件
    model文件夹寄存数据文件
    创立1个index.php 作为独一入口
    二、控制器 咱俩在controller文件夹下创建二个democontroller.php文件,文件内容如下

    跟着,规划MVC的目录结构如下:

    复制代码 代码如下:

     //index.php
     // get runtime controller prefix
     $c_str = $_GET['c'];
     // the full name of controller
     $c_name = $c_str.'controller';
     // the path of controller
     $c_path = 'controller/'.$c_name.'.php';
     // get runtime action
     $method = $_GET['a'];
     // get runtime parameter
     $param = $_GET['param'];
     // load controller file
     require($c_path);
     // instantiate controller
     $controller = new $c_name;
     // run the controller  method
     $controller->$method($param);
     // End of index.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 */

    localhost/index.php?c=abc

    那个文件之中我们只是创立了多少个名称为德姆oController的靶子并涵盖八个index的点子,该措施输出hello world。下边在index.php中实行德姆oController中index方法。
    index.php的代码如下

    在那几个文件中只是定义了一个德姆oController的类,且其只包罗三个index方法,用于出口hello world。

    <?php
    require('controller/democontroller.php');
    $controller=new DemoController();
    $controller->index();
    /* End of file index.php */

    localhost/controller/democontroller.php

    您可能感兴趣的作品:

    • PHP的MVC方式实现原理分析(一相轻巧的MVC框架楷模)
    • php实现最简单易行的MVC框架实例教程
    • php达成轻易的MVC框架实例
    • PHP MVC框架路由学习笔记
    • 搭建本人的PHP MVC框架详解
    • PHP MVC框架skymvc协助多文本上传
    • Thinkphp模板中选拔自定义函数的方式
    • ThinkPHP模板输出display用法解析
    • thinkphp模板承继实例简述
    • PHP仿tp达成mvc框架基本安插思路与贯彻方式剖判

    能够看看要想访谈这么些网址并拿走正确的结果,这段日子只可以通过index.php来访谈,那也是为什么称它为输入文件的原委。今后随意参数怎么样只可以访问同一一个页面,那么怎么着来决定显示分化的结果吧?恐怕调用分歧的调控器呢?

    复制代码 代码如下:

    校订入口文件

    运作index.php,ok如愿咱们看到了我们久违的hello world。那多个文本非常轻便,但也揭发了一丝丝mvc的本质,通过独一入口运维大家要运维的调节器。当然controller部分应该是由uri来支配的,那么大家来改写一下index.php使他能因此uri来调节运营这么些controller。
    index.php改写代码如下:

    MVC目录结构

    view文件夹下index.php文件代码如下:

    将如下代码加多到controller/democontroller.php文件中。

    在浏览器中输入 world。当然固然大家有别的的controller並且要运转它,只要修改url参数中的c和a的值就足以了。
    此间有多少个难点要验证一下。
    一、php是动态语言,大家直接能够透过字符串new出大家想要的目的和周转大家想要的方法,即上面的new $c_name,大家能够领略成new '德姆oController',因为$c_name本人的值正是'德姆oController',当然向来new '德姆oController'这么写是那二个的,在这之中的'德姆oController'字符串必须通过叁个变量来中间转播一下。方法也是一律的。
    二、大家在url中c的值是demo,也正是说$c_name 的值应该是demoController呀,php不是分别轻重缓急写吗,那样也能运维吧?php区分大小写那句话不完全,在php中只有变量(前面带$的)和常量(define定义的)是分别轻重缓急写的,而类名方,法名乃至一些第一字都是不区分轻重缓急写的。而true,false,null等只可以全体大写或任何大写。当然我们最佳在骨子里编码进度中分别轻重缓急写。
    三、视图
    大家在前面的controller中只是出口了贰个“hello world”,并未直达mvc的功力,上边小编就要此基础上加码视图效率,相信到这里我们基本已经能体会领会怎样加多视图功效了。对,正是通过万恶的require大概include来实现。
    第一大家在view文件夹下塑造两个index.php,随意写点什么(呵呵,笔者写的照旧hello world)。之后我们改写一下大家从前的德姆oController。代码如下:

    请求URL

    复制代码 代码如下:

    发掘U本田UR-VL中的参数还尚无其余意义。

    复制代码 代码如下:

    饱含须要的视图像和文字件和模型文件,然后生成视图与模型文件,接着通过模型对象获得数据,再用视图对象来输出获得的多少。

    再在浏览器中运营一下,看看是还是不是一度出口了作者们想要的从头到尾的经过了。
    继之大家透过controller向view传递一些数码看看,代码如下:

    MVC的根本功效是为了将代码分层、分类。

    localhost/index.php?c=demo&a=index¶m=welcome

     /*
     ├─www                       # 网址根目录
     │  ├─controller             # 调控器目录
     │  │  ├─democontroller.php  # demo控制器
     │  ├─model                  # 模型目录
     │  │  ├─model.php           # model模型
     │  ├─view                   # 视图目录
     │  │  ├─index.php           # index视图
     │  ├─index.php              # 入口文件
     */

    在PHP中选取MVC越来越流行了,非常是在一些开源的框架个中。MVC足以应对多数的情景,但还恐怕有部分状态是其不太符合的,如相比较轻易的村办博客,对于独有几百篇文章量级的博客,使用MVC令人觉着多少太复杂了;同样对现今日头条等门户网站,使用MVC,将有大批量的文书被加载,对于速度的熏陶是无力回天经受的。枫竹梦介绍MVC的基本原理及一种轻便的落到实处。如下介绍内容适用PHP开拓。

    模型Model

    此时,在浏览器中央银行使方面的约定的U科雷傲L进行拜见,将获取输出如下:

    复制代码 代码如下:

    第一,约定央浼页面时的UEvoqueL,以如下结构进行落到实处:

    MVC实现

    MVC的最首要目标是为了消除Web开辟中分离开辟与设计工作,使其专门的工作相对独立。

    在浏览器中运用方面包车型客车预订的URubiconL进行拜会,看到输出hello world。当然假若你诉求的ULX570L不是那样,而是如上边所示也能收获同样的输出。

    同期修改入口文件index.php如下:

    从地点的参数能够看来,访谈的文本是index.php,同期涵盖3个参数分别为c、a、param。

    复制代码 代码如下:

    您也许感兴趣的篇章:

    • MVC模式的PHP实现
    • PHP达成MVC开垦得最简便易行的格局——模型
    • PHP MVC情势在网址架构中的达成深入分析
    • PHP的MVC格局完毕原理剖析(一相轻松的MVC框架模范)
    • php完成最轻松易行的MVC框架实例教程
    • php实现轻巧的MVC框架实例
    • PHP简单的MVC框架达成格局
    • 深切浅析用PHP实现MVC

     // controller/democontroller.php
     class DemoController
     {
         private $data = 'Hello furzoom!';
         public function index()
         {
         //echo 'hello world';
         require('view/index.php');
         $view = new Index();
         $view->display($data);
         }
     }// End of the class DemoController
     // End of file democontroller.php

    本文由美高梅开户发布于美高梅官方网站开户,转载请注明出处:php创设属于本身的MVC框架,php不难实现MVC

    关键词: 美高梅开户