php教程自学网 - 轻松零基础学php视频教程
条幅广告
当前位置: 主页 > 原生PHP >

原生php写mvc示例

时间:2018-08-22 10:20来源:未知 作者:admin 点击:
一、什么是MVC?(这里先浅显介绍) 视图(The View): 一说到视图,我们很多人都会想到模板引擎(诸如Smarty等等)。其实就是各种各样的输出,比如说html模板和Javascript文件等。 模块(The Model

一、什么是MVC?(这里先浅显介绍)

  视图(The View):

  一说到视图,我们很多人都会想到模板引擎(诸如Smarty等等)。其实就是各种各样的输出,比如说html模板和Javascript文件等。

  模块(The Model):

  模块代表了程序的逻辑,在企业应用中通常称为业务逻辑层。一般来讲,这一层完成的工作是把原始的数据处理成按照我们设计的数据结构存储的有意义的数据序列,并将这些数据交给视图去处理。通常情况下, 模块中会利用一个数据抽象类来进行与数据操作有关的处理。

  Model通常包含了哪些用来同数据库打交道的函数。

  控制器(The Controller):

  控制器使所有WEB应用的第一站,他接受收到的参数,比如$_GET变量,然后做出相应的反应。

  二、代码(Controller.php Model.php View.php三个文件)

  View.php

  class View {

  public function display($output) {

  echo $output;

  }

  }

  Model.php

  header('Content-Type:text/html; charset=utf-8');

  class Model {

  private $database = array(

  'a' => 'hello world',

  'b' => 'ok well done',

  'c' => 'good bye',

  );

  // 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];

  }

  }

  // return links view

  public function getLinks() {

  $links = "新浪";

  $links.= "网易";

  $links.= "搜狐";

  return $links;

  }

  }

  知识点:

  /*

  * 知识点:

  * 1、header('Content-Type:text/html;charset=utf-8'); 声名内容类型和字符集

  * 2、public(公共的)可以内部调用,实例调用等

  * protected(受保护的)用于本类和继承类调用,实例化调用会报错

  * private(私有的)只有在本类中使用,实例化调用会报错

  * static(静态的)类不需实例即可调用静态属性或方法

  * 3、in_array(search, array, [type]);搜索数组中是否存在指定的值

  * 4、array_keys(array, [value], [strict]); 返回包含数组中所有键名的一个新数组

  * */

  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', $param = array()) {

  if(empty($method)) {

  $this->defaultMethod();

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

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

  } else {

  $this->nonexisting_method();

  }

  }

  public function link_page($name = '') {

  $links = $this->model->getLinks(); // 获取links字符串

  $this->view->display($links); // 输出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', 'a'); // 返回links链接和hello world

  $controller->doAction(); // 输出:This is the default method (没有参数的情况)

  知识点:

  /*

  * 知识点:

  * 1、method_exists(object, method_name) 检查类的方法是否存在

  * 2、call_user_func(callback, parameter) 把第一个参数作用回调函数调用

  * 3、empty() 检测变量是否为空、为0

  * isset()判断变量是否已声明

  * */

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关推荐
  • php常用原生函数
  • 1.in_array 判断一个值是否在这个数组中 例: $arr = array(apple,banana); if(in_array(app

  • 原生php文件上传
  • html端: form action=check.php method=post enctype=multipart/form-data input type=hidden name=MAX_F

  • 什么是PHP Trait
  • 如果你是一个PHP新手,或者你是一个资深的PHP程序员,你可能听说过Trait,但是

  • 如何通过​PHP创建数据库
  • 数据库是相互关联的数据的集合,我们可以从数据库中有效地检索,插入和删除

  • PHP array_reduce()函数的应用解析
  • 实例 向用户自定义函数发送数组中的值,并返回一个字符串: ?php function myfu

  • php图片裁剪函数
  • /* * 图片裁剪工具 * 将指定文件裁剪成正方形 * 以中心为起始向四周裁剪 * @pa

  • PHP文件格式
  • PHP是编程语言,必须经过服务器解释才能才浏览器上浏览的一种文件。php文件是

  • PHP冒泡排序算法
  • 今天开始弄点面试题,一来巩固所学的PHP知识,二来对某些正在找工作的人也许

  • 原生php实现文件上传方法
  • 用tp的框架上传文件,方便是方便了,但是知其然而不知其所以然。 想要知其所

  • 自己编写php框架的核心
  • 大部分的Web框架处理以下事情: 代码重用:定义包、类、函数的放置和加载规