热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php怎么创建mvc(php怎么创建项目)

导读:很多朋友问到关于php怎么创建mvc的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览:

导读:很多朋友问到关于php怎么创建mvc的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

本文目录一览:


  • 1、什么是MVC以及PHP怎样实现MVC


  • 2、简述MVC思想与PHP如何实现MVC


  • 3、如何用PHP实现自己的MVC


  • 4、如何入门一个PHP MVC框架


  • 5、php怎么实现mvc?


  • 6、详解PHP实现MVC的几种方法

什么是MVC以及PHP怎样实现MVC

其实你的问题一开始就问错了,即然你问了,我就随便说说好了。

MVC 是一种设计风格,并不是一种具体手法。每个人写代码都有自己习惯的一种设计风格。MVC 是应用程序开发常用的一种风格,实际上并不适合 PHP,因为 PHP 的工作环境注定了它很难做出像样的控制器,也就是 Controll 。

MVC 本来的设计风格是:整个系统由一个程序启动,再根据用户操作调用各个处理模块,根据数据结果来决定显示成什么样给用户看。就像我们平时用的各种程序的主界面。这样程序员创建好主程序以后,只要把注意力集中在开发各个子功能上就可以了。。

可是 php 大多数情况下工作于 web 环境,有“页”的概念,每次执行都是一个新的请求。这就注定了很难实现真正的 MVC,因为用户看到页面时,PHP 已经执行完了,不可能再切换去调另一个 模型M 和 视图V 。

目前自称 MVC 的各种框架。也只不过是用一个程序判断请求,加载不同的功能块。只能称之为“单点入口”,在思路上是“请求相同的部份,而包含不同的部份”。这个入口程序实际上啥也没做,所以算不上是 MVC。反而 JS 开发的富客户端更接近一些。由一个 JS 主程序,跟据用户请求决定调用哪些数据,再把界面改变成什么样。

设计风格是前人总结出来的东西,在当前语言,当然环境,当前思维方式下。比较容易继续思考的一种设计方式。MVC 只不过是其中一种,而且并不是最适合 PHP 的一种。偏偏被炒作得好像标准似的。。

如果你一定要, 就去看一下 “PHP 单点入口实现”吧,已经是比较接近的东西了。如果一次性的控制器也能算控制器的话……

简述MVC思想与PHP如何实现MVC

简单的说就是将网站源码分类、分层。

MVC三个字母的含义:

M:Model 模型,负责数据库操作。

V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。

C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。

如此说来,程序的执行顺序是C-V-M 或 C-M ,和MVC的名字正好相反。

如何用PHP实现自己的MVC

MVC三个字母的含义: M:Model 模型,负责数据库操作。 V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。 C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。 下面是一个超级简单的MVC结构实现: Controller.php include 'Model.php'; include 'View.php'; class Controller {     private $model     = '';     private $view     = '';          public function Controller(){         $this-model    =    new Model();         $this-view        =    new View();     }          public function doAction( $method = 'defaultMethod', $params = array() ){         if( empty($method) ){             $this-defaultMethod();         }else if( method_exists($this, $method) ){             call_user_func(array($this, $method), $params);         }else{             $this-nonexisting_method();         }     }          public function link_page($name = ''){         $links = $this-model-getLinks();         $this-view-display($links);                  $result = $this-model-getResult($name);         $this-view-display($result);     }          public function defaultMethod(){         $this-br();         echo "This is the default method. ";     }          public function nonexisting_method(){         $this-br();         echo "This is the noexisting method. ";     }          public function br(){         echo "";     } } $controller = new Controller(); $controller-doAction('link_page', 'b'); $controller-doAction(); Model.php class Model {     private $database = array(         "a"    =    "hello world",         "b"    =    "ok well done",         "c"    =    "good bye",     );          //@TODO connect the database          //run the query and get the result     public function getResult($name){         if( empty($name) ){             return FALSE;         }                  if( in_array($name, array_keys( $this-database ) ) ){             return $this-database[$name];         }     }     public function getLinks(){         $links = "Link A ";         $links.= "Link B ";         $links.= "Link C ";                  return $links;     } } View.php class View {          public function display($output){ //        ob_start();                  echo $output;     }     

如何入门一个PHP MVC框架

一。选择 一个框架

至于选哪一种框架,主要看个人,1)最好是身边朋友都有人在用,因为你不懂的时候方便解决。有时候论坛,手册上的解答你未必理解的通透,特别是没有接触过框架的phper来说,更是不知所云。2)选择此框架论坛比较活跃的,这是身有同感,前一段时间玩qeephp框架的时间,论坛冷冷清清的,工作需要,没办法,只能硬着上了,遇到问题的时候,回答的问题的人很少,同时手册之类只写了某部分,还有很多部分并没有写上去。对于一个新手来说,直接KO了。

二。熟悉数据库的操作

每一个框架都有自己的操作方法,这是必须要学会的。select,delete,insert,update这几种用法摸熟。最快的方法是看手册,查找对应的操作。同时要知道其中的调试方法,你就可以看到原生的操作有没有错误。基本都会了,这个框架至少可以开始开发项目了。

三。论坛官方网站

这个很重要,先看手册,遇到问题先在论坛里查找一下有没有人遇到过你这种情况,有就不用发问了。然后同一个问题,很少人再去回答一遍。有时候遇到自己能解决的问题,也回答一下,这样可以加深你的理解,不要觉得浪费你的时间,这前提是你有时间的情况下。所以本着人人为我,我为人人的精神

四。下载一个案例。

我经常是这样,不知道某个功能怎样调用的时候,直接找案例里相对应的功能看代码,看人家是怎样调用的,再加上自己的见解。

五。手册的类

MVC一般都有自带一些类了,方便用户操作,有了自己就不用再写对应的代码了。

六。要有“拿来主义”精神

别人的东西,你自己融会贯通了,东西就是你的了。

php怎么实现mvc?

MVC三个字母的含义:

M:Model 模型,负责数据库操作。

V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。

C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。

下面是一个超级简单的MVC结构实现:

Controller.php

include 'Model.php';

include 'View.php';

class Controller {

    private $model     = '';

    private $view     = '';

    

    public function Controller(){

        $this-model    =    new Model();

        $this-view        =    new View();

    }

    

    public function doAction( $method = 'defaultMethod', $params = array() ){

        if( empty($method) ){

            $this-defaultMethod();

        }else if( method_exists($this, $method) ){

            call_user_func(array($this, $method), $params);

        }else{

            $this-nonexisting_method();

        }

    }

    

    public function link_page($name = ''){

        $links = $this-model-getLinks();

        $this-view-display($links);

        

        $result = $this-model-getResult($name);

        $this-view-display($result);

    }

    

    public function defaultMethod(){

        $this-br();

        echo "This is the default method. ";

    }

    

    public function nonexisting_method(){

        $this-br();

        echo "This is the noexisting method. ";

    }

    

    public function br(){

        echo "br /";

    }

}

$controller = new Controller();

$controller-doAction('link_page', 'b');

$controller-doAction();

Model.php

class Model {

    private $database = array(

        "a"    =    "hello world",

        "b"    =    "ok well done",

        "c"    =    "good bye",

    );

    

    //@TODO connect the database

    

    //run the query and get the result

    public function getResult($name){

        if( empty($name) ){

            return FALSE;

        }

        

        if( in_array($name, array_keys( $this-database ) ) ){

            return $this-database[$name];

        }

    }

    public function getLinks(){

        $links = "a href='#'Link A/anbsp;nbsp;";

        $links.= "a href='#'Link B/anbsp;nbsp;";

        $links.= "a href='#'Link C/anbsp;nbsp;";

        

        return $links;

    }

}

View.php

class View {

    

    public function display($output){

//        ob_start();

        

        echo $output;

    }

    

}

详解PHP实现MVC的几种方法

相信所有习惯了使用MVC来组织自己的项目的人,让他选择一个新的项目构架时,一定不会放弃MVC。传统的面相过程式的开发方式在处理中型以上的应用时,就开始显得力不从心。即便我们能够快速的完成需求,但是在需求发生变更后或者进行后期维护的时候,我们会深深地陷入我们早期搭建的陷阱中。什么是MVC?关于MVC的定义和解释,可以说多种多样。我们可以在Wiki或者[2]中找到更为详尽的解释,这里我并不打算,也没有能力进行深入的讲解,从PHP开发的角度来讲,MVC可以概括为:视图(The View):一说到视图,我们很多人都会想到模板引擎(诸如Smarty等等)。其实就是各种各样的输出,比如说html模板和Javascript文件等。模块(The Model)模块代表了程序的逻辑,在企业应用中通常称为业务逻辑层。一般来讲,这一层完成的工作是把原始的数据处理成按照我们设计的数据结构存储的有意义的数据序列,并将这些数据交给视图去处理。通常情况下, 模块中会利用一个数据抽象类来进行与数据操作有关的处理。
关于MVC的是否适合PHP的争论也很多,人们不断的讨论MVC是否适合PHP[3],现在也已经有了很多的MVC框架,诸如PHP MVC Frameworks中列出的[4]。那么,为什么人们这么热衷于MVC,我们为什么要使用MVC在我们的设计中呢。为什么用MVC?MVC最早是用来解决桌面GUI的编程问题,最早的MVC框架应该是Sun在1999年提出的Model 2,后来演变成了Struts。MVC带给人们深刻的印象,但是我们在使用的过程中,却并没有认真的想过为什么使用MVC。在传统的桌面应用中,一旦Model中有时间发生,我们可以主动的让View界面进行刷新,从而展示后台发生的变化。而在Web应用中,我们似乎限于传统的Http的Request/Response的方式,我们似乎没有办法让用户端进行更新。这一段讨论,并不是认为MVC不能够用来进行WEB应用的开发,而是觉得从某种程度上来说,他还不是最合适的。关于使用MVC的争论还有很多[1],但是相信所有习惯了使用MVC来组织自己的项目的人,让他选择一个新的项目构架时,一定不会放弃MVC。如何PHP实现MVC?下面是一个超级简单的MVC结构实现,甚至连数据源都用了一个内置的固定数组,虽然简单,但其实众多的PHP Framework核心实现的思想应该和这个是差不多的,只不过一些framework提供了更多的方便开发者使用的工具,我也想自己来实现一个PHP的框架,目前正在着手策划中,也希望自己能够从框架的开发中学习到更多的PHP设计思想和方法。

结语:以上就是编程笔记为大家整理的关于php怎么创建mvc的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~


推荐阅读
author-avatar
有情人都在外头_943
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有