列出一個超級簡單的MVC結構實現,甚至連數據庫都用了一個內置的固定數組,雖然簡單,但其實眾多的PHP Framework核心實現的思想應該和這個是差不多的,只不過一些framework提供了更多的方便開發者使用的工具,對於初次有心瞭解MVC者來說,這是一個簡單啟蒙,
希望能夠從簡單框架的開發中學習到更多的PHP設計思想和方法,而不是只會操作工具來完成。

名 詞 解 釋 :PHP(PHP:Hypertext Preprocessor)
是一種在電腦上執行的腳本語言,主要用途是在於處理動態互動網頁機制,也包含了命令列執行介面(command line interface),或者產生圖形使用者介面(GUI)程式…more

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
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 = “<a href=’#’>Link A</a>&nbsp;&nbsp;”;
$links.= “<a href=’#’>Link B</a>&nbsp;&nbsp;”;
$links.= “<a href=’#’>Link C</a>&nbsp;&nbsp;”;

return $links;
}
}

View.php
class View {

public function display($output){
//        ob_start();

echo $output;
}

}

更多

Related Posts

專欄文摘

網站伺服器校能指數和測試系統能支援多少用戶

1 怎樣的效能測試結果才是有效的 1.1 錯誤觀點 效能測試工具運行一 Read more...

專欄文摘

社群行銷如何抓住大學生的心

  各大院校在校大學生無疑是社群媒體上的活躍分子。這些人年輕 Read more...

專欄文摘

Linux Centos 網站伺服器之系統安全和PHP安全設定

一.Centos 系統安全方面 1、用防火牆關閉不須要的任何端口,別人 Read more...