欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP实例:实现超级简单的MVC结构

程序员文章站 2022-05-14 08:18:08
...

下面是一个超级简单的MVC结构实现,甚至连数据源都用了一个内置的固定数组,虽然简单,但其实众多的PHP Framework核心实现的思想应该和这个是差不多的

只不过一些framework提供了更多的方便开发者使用的工具,我也想自己来实现一个PHP的 框架,目前正在着手策划中,也希望自己能够从框架的开发中学习到更多的PHP设计思想和方法。

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


Code
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;
}

}



相关标签: MVC结构