php模拟一个简易的mvc模型
mvc是軟件設計的一種結構(即模型、視圖、控制器)
本篇文章會通過一個簡易的webapp來介紹mvc,目錄結構如下:
mvcDemo
? ? index.php
? ? modules
? ? ? ? UserModule.php
? ? ? ? BlogModule.php
? ? views
? ? ? ? user
? ? ? ? ? ? userPage.php
? ? ? ? blog
? ? ? ? ? ? blogPage.php
? ? controllers
? ? ? ? UserController.php
BlogController.ph
在以上的目錄結構中:
index.php
? ? 【入口文件】是一個入口文件,是一個唯一讓瀏覽器請求的腳步文件;
modules
? ? 【模型】用于提供數據并保存數據
views
? ? 【視圖】用于提供界面的顯示
controller
? ? 【控制器】用于協調模型和視圖
action控制器中定義的方法:
? ? 【action】是控制其中定義的方法,瀏覽器直接請求,url中以參數的形式傳遞
以下在項目的創建過程中慢慢的來講解mvc的工作模式,所有的過程都是在虛擬機環境下的centos6中完成的(該虛擬環境已經具備了lamp環境)
一、首先我們創建一個目錄mvcDemo用于存放該項目:
二、接下來我們進入mvcDemo目錄創建相應的文件和文件夾,如下:
以上視圖我們創建了index.php入口文件;modules模型文件夾;views視圖文件夾;controllers存放控制類的文件夾
三、進入controllers目錄,創建一個UserController.php和BlogController.php,如下:
編輯UserController.php和BlogController.php;分別寫入如下代碼:
UserController.php:
<?php class BlogController{public function index(){echo '這是博客控制器的index方法';} } 四、返回上一級目錄,編輯index.php,如下: <?php//這是一個入口文件//這是一個控制器$c = $_GET['c']; //用于獲取url參數中傳過來的,具體的哪一個控制器//包含控制器include './controllers/'.$c.'Controller.php'; //將參數拼接為我們要訪導入的類//實例化一個對象$className = $c.'Controller';$controller = new $className();//訪問方法名$m = $_GET['m']; //用于獲取url參數中傳遞過來的,具體要訪問的哪一個方法$controller->$m(); //執行該方法,返回相應的數據或視圖 保存后,訪問url【server/mvcDemo/?c=User&m=index】,在我的電腦上訪問返回如下結果, 注意【我的電腦IP地址為192.168.1.112;項目存放目錄為mvcTest】
可以看我我們正常訪問到了UserController類中的index方法。
在以上過程中我們已經通過了入口文件,訪問到了我們模型中的方法,并返回了相應的數據,接下來我們要通過模型,返回相應的視圖,展示給用戶:
五、進入views目錄,創建user和blog目錄
六、進入user目錄,創建一個index.php,并寫下如下代碼(一段簡單的htm):
<html><head><title>user</title></head><body><h1>this is user view</h1></body> </html> 七、接下來進入controllers目錄,編輯我們創建好的UserController.php,加上如下代碼,將我們的視圖文件包含進來: <?php class UserController{public function index(){echo '這是user控制器的index方法';include './views/user/index.php';} }我們再次訪問url【server/mvcDemo/?c=User&m=index】,顯示如下:
可以看到我們剛才寫的視圖文件正常執行,并顯示了
現在我們已經訪問入口文件,通過模型,訪問到了我們的視圖
接下來我們要訪問入口文件,通過模型,訪問視圖,并獲取數據庫中的數據(這里數據庫中返回的數據,我們寫假數據):
八、進入modules目錄,創建一個文件UserModule.php,寫入如下代碼:
<?php class UserModule{public function getData(){$data = '{result:{lilei:{age:25,sex:man},lili:{age:23,sex:woman}}';return $data;} } 9、接下來我們編輯controllers目錄下的UserController.php文件,讓他調用UserModule.php <?php class UserController{public function index(){echo '這是user控制器的index方法';include './views/user/index.php';include './modules/UserModule.php';$umo = new UserModule();echo '<br/>';echo $umo->getData();} }再次訪問url【server/mvcDemo/?c=User&m=index】,顯示如下:
到此文章,一個簡易的mvc實現就完成了。
總結
以上是生活随笔為你收集整理的php模拟一个简易的mvc模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gitweb的安装(四)
- 下一篇: A new node couldn't