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>
漂亮而簡單。
我們有一些使用控制器的技巧,在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
- 使用MVC模式實現區塊鏈開發MVC模式區塊鏈
- php實現抽象工廠模式PHP抽象模式
- 【php實現設計模式】之單例模式PHP設計模式單例
- PHP 實現字串翻轉(包含中文漢字)的實現PHP字串
- php實現pdf轉圖片PHP
- php實現圖片旋轉PHP
- PHP設計模式(3)—— 策略模式PHP設計模式
- PHP中實現頁面跳轉PHP
- PHP實現職責鏈設計模式PHP設計模式
- Spring MVC 中檢視的實現原理,在Spring MVC 中實現重定向和轉發,以及訪問靜態資源SpringMVC
- 從零開始實現一個簡易的Java MVC框架(七)–實現MVCJavaMVC框架
- 從零開始實現一個簡易的Java MVC框架(七)--實現MVCJavaMVC框架
- PHP實現觀察者模式SplSubject SplObserver SplObjectStoragePHP模式ServerObject
- Windows 系統,PHP實現PPT轉PDF,PDF轉圖片的操作WindowsPHP
- MVC模式和MVP模式的區別MVC模式MVP
- 實現MVC基礎框架MVC框架
- 簡說PHP之MVCPHPMVC
- PHP 單例模式優點意義及如何實現PHP單例模式
- 玩轉Golang的channel,二百行程式碼實現PubSub模式Golang行程模式
- MVC模式的替代者ADRMVC模式
- MVVM與MVC模式的比較MVVMMVC模式
- 淺談php變數的實現-PHPPHP變數
- 用 go 實現一個簡單的 mvcGoMVC
- 極簡架構模式-MVC模式架構模式MVC
- MongoDB changeStream 的 PHP 實現MongoDBPHP
- Python3實現旋轉陣列的3種演算法Python陣列演算法
- 手寫Spring MVC框架(一) 實現簡易版mvc框架SpringMVC框架
- php實現依賴注入(DI)和控制反轉(IOC)PHP依賴注入
- php怎麼實現登陸後跳轉網頁PHP網頁
- Spring MVC實現過程淺析SpringMVC
- DIY 實現 ThinkPHP 核心框架 (一)MVCPHP框架MVC
- Spring mvc檔案上傳實現SpringMVC
- 分析MVC5原始碼,並實現一個ASP.MVCMVC原始碼
- 3、使用Windows命令來實現埠轉發Windows
- css3帶你實現3D轉換效果CSSS33D
- Golang實現ECB模式3DES演算法Golang模式3D演算法
- 私聊(PHP 實現)PHP