MVC模式的PHP實現(3) (轉)
最後是控制器,我們將把檢視實現為一個子類。
:namespace prefix = o ns = "urn:schemas--com::office" />
/**
* Controls the application
*/
class
ProductController
extends
ProductView
{
//! A constructor.
/**
* Constucts a new ProductController
* @param $model an instance of the ProductModel class
* @param $getvars the incoming HTTP GET method variables
*/
function
ProductController
(&
$model
,
$getvars
=
null
) {
ProductView
::
ProductView
(
$model
);
$this
->
header
();
switch (
$getvars
[
'view'
] ) {
case
"product"
:
$this
->
productItem
(
$getvars
[
'id'
]);
break;
default:
if ( empty (
$getvars
[
'rownum'
]) ) {
$this
->
productTable
();
} else {
$this
->
productTable
(
$getvars
[
'rownum'
]);
}
break;
}
$this
->
footer
();
}
}
?>
注意這不是實現MVC的唯一方式——比如你可以用控制器實現模型同時整合檢視。這只是演示的一種方法。
Pattern' src="/Develop/ArticleImages/21/21641/CSDN_Dev_Image_-10-192245101.gif" width=400 border=0>
我們的index.php 看起來像這樣:
require_once(
'lib/DataAccess.php'
);
require_once(
'lib/ProductModel.php'
);
require_once(
'lib/ProductView.php'
);
require_once(
'lib/ProductController.php'
);
$dao
=& new
DataAccess
(
'localhost'
,
'user'
,
'pass'
,
'name'
);
$productModel
=& new
ProductModel
(
$dao
);
$productController
=& new
ProductController
(
$productModel
,
$_GET
);
echo
$productController
->
display
();
?>
漂亮而簡單。
我們有一些使用控制器的技巧,在PHP中你可以這樣做:
$this
->{
$_GET
[
'method'
]}(
$_GET
[
'param'
]);
一個建議是你最好定義URL的名字空間形式(namespace),那樣它會比較規範比如:
"index.php?class=ProductView&method=productItem&id=4"
透過它我們可以這樣處理我們的控制器:
$view
=new
$_GET
[
'class'
];
$view
->{
$_GET
[
'method'
](
$_GET
[
'id'
]);
有時候,建立控制器是件很困難的事情,比如當你在開發速度和適應性之間權衡時。一個獲得靈感的好去處是 group 的/userGu/building_controller.html"> Struts,它的控制器完全是由XML文件定義的。
@ /phpMVC.zip">完整程式
PS:本來是一個帖子的;可是死活貼不上來 -________-b 只好腰斬了
Part1 /Develop/read_article.?id=21639">
Part2
Part3
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-962700/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP實現單例模式PHP單例模式
- MVC模式在Java Web應用程式中的實現MVC模式JavaWeb
- 基於dojo實現mvc 模式下的ajax應用MVC模式
- 使用MVC模式實現區塊鏈開發MVC模式區塊鏈
- php實現抽象工廠模式PHP抽象模式
- 【php實現設計模式】之單例模式PHP設計模式單例
- PHP物件程式設計實現3D餅圖 (轉)PHP物件程式設計3D
- Spring的web MVC 構架模式 (轉)SpringWebMVC模式
- PHP設計模式(3)—— 策略模式PHP設計模式
- PHP 實現字串翻轉(包含中文漢字)的實現PHP字串
- php實現圖片旋轉PHP
- php實現pdf轉圖片PHP
- PHP實現觀察者模式SplSubject SplObserver SplObjectStoragePHP模式ServerObject
- PHP實現職責鏈設計模式PHP設計模式
- JavaScript 的 MVC 模式JavaScriptMVC模式
- php陣列轉xml的遞迴實現PHP陣列XML遞迴
- PHP實現四捨五入的3種方法PHP
- 設計模式、用Delphi實現---->Builder模式 (轉)設計模式UI
- 從零開始實現一個簡易的Java MVC框架(七)–實現MVCJavaMVC框架
- 從零開始實現一個簡易的Java MVC框架(七)--實現MVCJavaMVC框架
- PHP 實戰之設計模式:PHP 中的設計模式PHP設計模式
- PHP中實現頁面跳轉PHP
- PHP實現圖片轉字元畫PHP字元
- php實現301跳轉PHP
- PHP & Java(3) (轉)PHPJava
- 程式介面多模式顯示的實現 (轉)模式
- JScript下Singleton模式的實現。 (轉)JS模式
- 前端MVC、MVVM的簡單實現前端MVCMVVM
- CSS3實現的3D旋轉效果CSSS33D
- 設計模式、用Delphi實現---->Singleton 模式 (轉)設計模式
- Singleton模式之Delphi實現 (轉)模式
- 探索從 MVC 到 MVVM + Flux 架構模式的轉變MVCMVVMUX架構模式
- MVC模式和MVP模式的區別MVC模式MVP
- 實現MVC基礎框架MVC框架
- MVC模式原理MVC模式
- css3實現的旋轉的陀螺效果CSSS3
- [轉]spring mvc註解方式實現嚮導式跳轉頁面SpringMVC
- .NET MVC 二級域名路由的實現MVC路由