從封閉的大學出來,重新接觸到著時時都在變化的社會的時候,不禁流下了眼淚,同時站在原地感嘆著這世界。從哥哥那裡聽說mode2和mvc的概念,到開始看mvc的文章,又到現在的想法,我又感覺到了久違的熱情,呵呵。在了解到mvc模型的可行性後,我打算將mvc應用於自己的畢業設計(web交易平台),這本身就是個很好的實踐機會。網上有很多php實現mvc的文章,也有很多實現好的框架,但是還是自己寫可以體會到mvc的內涵(其實是懶的看那頭疼的英文文件 : p),所以打算自己寫乙個mvc框架,暫時叫他pitt吧,下面是pitt的框架概述:
frontcontroler-+->actionmanager1-->[actionnode-->actionnode]-->pagemaker
|+->actionmanager2-->.........
|+->actionmanager3-->.........
frontcontroler實現了mode2裡的frontcontroler
根據使用者請求呼叫不同的行為,乙個行為又多個actionnode組成
actionmanager實現了controler
控制,管理,呼叫actionnode鏈和pagemaker
actionnode鏈實現了moudle
實現邏輯的地方,比如資料庫操作,排序,運算等等
pagemaker實現了view
根據.tpl檔案生成html,發給客戶端
actionnode是邏輯的最小單位,比如登陸這個行為,剛開始我的登陸請求需要name和password,為此,我需要建立乙個actionnode,取名為checknamepassnode,並且覆蓋_execute方法,實現name和password的正確性檢查,後來,由於驗證碼流行,我就可以採用兩中方法實現驗證碼檢測功能
1、派生checknamepassnode類,重寫_execute方法。
class advchecknamepassnode extends checknamepassnode
else}}
2、新建乙個actionnode,取名為checknumbernode
class checknumbernode extends actionnode
}然後在actionmanager的配置檔案裡新增這個actionnode,並且部署在checknamepassnode之前
下面我把我已經寫完的幾個類**帖出來,由於沒有對這些類有真正明確的定義,所以**可能隨時會改變
frontcontroler.php
function setkey($k)
function setamf($f)
function getamf($f)
function _init()
{}function _execute()}
?>
get.php //封裝了$_get
<?
class get
function getget()
function keyexist($key)
}?>
post.php //封裝了$_post
<?
class post
function getpost()
function keyexist($key)
}?>
request.php //封裝了$_get和$_post的合集
<?
class request
function getvalue($key)
function keyexist($key)
}?>
parameter.php //實現了引數類,是actionnode間傳遞的東西
<?
class parameter
function removeparameter($key)
}function isparameterexists($key)
function getpara()
function makeparameter($oa)
}?>
以上幾個類我覺得問題不大了,其實我自己也比較模糊,呵呵,邊寫邊完善吧
2023年2月20日 2:08:50
php打造屬於自己的MVC框架
本篇先介紹一下php的mvc實現原理,我們框架的mvc部分也是基於此原理實現的,但是今天的 並不是框架內的 僅僅為說明原理 一 檔案結構 建立3個資料夾 controller資料夾存放控制器檔案 view資料夾存放視 件 model資料夾存放資料檔案 建立1個index.php 作為唯一入口 二 控...
PHP搭建自己的MVC框架 2
mvc工作流程初步認識 第一步 訪問者 呼叫控制器 發出指令 第二步 控制器 按指令選取合適的模型 第三步 模型 安控制器發出的指令獲取相應的資料 第四步 控制器 按照指令選取相應的檢視 第五步 檢視 將第三步渠道的資料通過控制器傳遞給檢視資料按使用者想要的樣子展示出來 1 首先我們需要有乙個入口檔...
打造自己的MVC框架
打造自己mvc框架 1 mvc概念 model view controller 控制器 2 psr規範 psr1 基礎程式設計規範 psr2 編碼風格規範 psr3 日誌介面規範 psr4 自動載入規範 3 命名規範 檔名和類名相同 大駝峰原則 indexcontroller 命名空間名和資料夾名相...