zoukankan      html  css  js  c++  java
  • php框架codeigniter是如何实现mvc模式以及单一入口

    简介:这是php框架codeigniter是如何实现mvc模式以及单一入口的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=323147' scrolling='no'>

    关于mvc

    这里不详细讲解何为MVC模式,只是简单介绍,关于mvc的具体信息可以去网络上找寻,mvc模式在我理解来它将一个项目分解成三部分,分别是Model(模型),View(视图),Controller(控制器),这三个单词的缩写组合即为MVC.MVC是一种普遍的软件敏捷开发模式,在许多领域特别是桌面编程领域早已经得到了广泛的应用,然而在像php一样的脚本语言中比较难以实现,特别是几年前在脚本语言中很难看到mvc的实现,但是今年随着众多框架的涌现,mvc在各个框架中得到了初步实现,其他框架中的实现方式暂且不提,这里只是介绍codeigniter是如何实现mvc的。

    关于单一入口

    单一入口指在一个网站(应用程序)中,所有的请求都是指向一个脚本文件的,例如CI中的http:\\localhost\index.php,所有对应用程序的访问都是必须通过这个入口,正是单一入口才使得mvc模式得以实现,因为当你访问index.php的时候,应用程序会做大量的初始化工作,调用大量的基础类库,并根据index.php后面的参数加载控制器,然后加载试图,模型等内容信息。

    ci的所有文件加载都要经过控制器调用,因为控制器是CI中的超类,也就是其他的类都依附于它,所以用单一入口方式访问CI应用程序的时候,需要在index.php的后面加上控制器名和控制器中的方法名,如果你对于此没有任何概念或者无法理解,可以去CI的官方网站下载它的官方文档,然后详细了解它的工作方式

    CI的官方文档非常详尽易懂,这里描述的是文档上所不存在的基本原理部分。

    开始

    或许应该先讲解CI的控制器是如何工作的,CI中的一个控制器就是用户编写的一个类,它继承自系统的Controller类,例如假设我们要构建一个可以通过http:\\localhost\index.php\control\func\param1\param2访问的页面,我们需要做哪些工作呢,首先我们要在system\application\controllers\文件夹下新建一个文件contro.php文件,这个文件即是我们要访问的控制器类所在文件,在此文件中创建以下内容:

    以下为引用的内容:
    1 class Controller extends Controller {
     2 
     3     function Controller()
     4     {
     5         parent::Controller();    
     6     }
     7     
     8     function func($param1,$param2)
     9     {
    10  $this->load->model('MSomemodel','',TRUE);
    11  $data['data1']= $this->MSomemodel->getvalue();
    12            $this->load->view('welcome',$data);
    13     }
    14 }

    这并不是一个控制器的基本组成部分,而是包含了model和view的一个控制器例子,

    首先注意控制器的类名应该是首字母大写的,然后在类的构造函数里应该调用父类的构造函数,之后则是func()方法,也就是url后面所带参数的第二个部分,这个方法带有两个参数,这两个参数的值就是url的第三部分和第四部分的值,也就是单一入口的访问方式实际是:http:\\localhost\index.php\控制器名\方法名\方法的参数1\方法的参数2\。..。..

    在控制器类中每个方法代表一个页面,也就是可以将很多类似的操作放到一个控制器中,实现对操作的统一

    在上述的例子中的func()方法中的其他部分分别加载了model和view,加载model的时候加载的是在models文件夹中的msomemodel.php文件中的MSomemodel类,这个类负责应用程序的模型部分,也就是负责数据的交换,例如数据库的存储。

    “php框架codeigniter是如何实现mvc模式以及单一入口”的更多相关文章 》

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/323147.html pageNo:16
  • 相关阅读:
    android阅读器开发
    Android开源库
    Android开源项目分类汇总
    java 读取显示txt内容(Swing)
    Java 图形用户界面设计 (Swing)
    Java读取txt文件,换行写txt文件
    出国旅行口语必备300句
    100-days:nine
    100-days: eight
    The Attention Merchants
  • 原文地址:https://www.cnblogs.com/ooooo/p/2255912.html
Copyright © 2011-2022 走看看