11.15.2011, 架構, by admin.
首先我來舉個例子:
乙個簡單的文章顯示系統
簡單期間,我們假定這個文章系統是唯讀的,也就是說這個例子將不涉及文章的發布,現在開始了。
由於只涉及資料庫的讀取,所以我定義了兩個inte***ce
1
inte***ce dataoperation
2
上面這inte***ce定義了讀取資料的介面,select方法將返回所需要的文章。selectnum方法返回文章的總數,這是分頁顯示時用到的。$info是乙個陣列,用來存放查詢條件
1
inte***ce datasource
2
這裡我們假定我們操作的是資料庫,datasource定義乙個介面,所有實現該介面的例項類將得到乙個靜態物件
01
inte***ce controller
02
07
inte***ce view
08
好了,我們來實現.
下面定義乙個類來實現datasource介面,這個類運用了單例模式
01
class
databasesource
implements
datasource
02
10
return
self::
$instance
;
11
}
12
}
定義乙個抽象類來實現dataoperation,我們要共享乙個資料庫連線,所以我在抽象類中將這個資料庫物件初始化,這樣,所有的子類都能共享這個物件
01
abstract
class
databaseoperation
implements
dataoperation
02
08
public
function
select(
$info
);
09
public
function
select(
$info
);
10
}
下面我來寫乙個業務子類來實現抽象類databaseoperation
01
class
tech
extends
databaseoperation
02
07
public
function
selectnum(
$info
)
08
11
}
業務邏輯層我們實現了,下面是控制層
01
class
viewcontroller
implements
controller
02
08
public
function
pop(
$key
)
09
12
public
function
execute(
$key
)
13
16
}
好了,下面是表現層,這裡將實現inte***ce view
1
abstract
articleview
implements
view
2
9
}
具體的頁面,例如科技文章的顯示頁面
1
class
techarticleview
extends
articleview
2
7
}
好了,下面是總入口index.php
01
try
02
10
catch(exception
$e
)
11
php中的MVC模式運用
php中的mvc模式運用 首先我來舉個例子 乙個簡單的文章顯示系統 簡單期間,我們假定這個文章系統是唯讀的,也就是說這個例子將不涉及文章的發布,現在開始了。由於只涉及資料庫的讀取,所以我定義了兩個inte ce inte ce dataoperation 上面這inte ce定義了讀取資料的介面,s...
php中的MVC模式運用
首先我來舉個例子 乙個簡單的文章顯示系統 簡單期間,我們假定這個文章系統是唯讀的,也就是說這個例子將不涉及文章的發布,現在開始了。由於只涉及資料庫的讀取,所以我定義了兩個inte ce inte ce dataoperation 上面這inte ce定義了讀取資料的介面,select方法將返回所需要...
php中的MVC模式運用
首先我來舉個例子 乙個簡單的文章顯示系統 簡單期間,我們假定這個文章系統是唯讀的,也就是說這個例子將不涉及文章的發布,現在開始了。由於只涉及資料庫的讀取,所以我定義了兩個inte ce inte ce dataoperation 上面這inte ce定義了讀取資料的介面,select方法將返回所需要...