控制器的作用是作為模型於檢視之間的橋梁,細分的話有兩個
建立模型類時時按照表劃分的,也就是說一張表對應乙個模型類
控制器類應該建立在controller 目錄下,每個類就是乙個控制器,我們稱為控制器類
控制器檔案的命名規範
1)功能名稱+controller.class.php
2)控制器名稱也採用大駝峰寫法,如usercontroller、newstypecontroller
3)控制器中的方法使用小駝峰寫法,如 selectaction、getinsertidaction
4)如上,方法名稱後面加上action字尾
建立乙個控制器,用於管理所有的使用者資料
在controller下建立usercontroller.class.php 檔案
在控制器中編寫方法,用於向users表中新增資料
<?php
class userscontroller
}
我們發現,控制器中的addaction 方法呼叫了模型類中的users_add方法
這就是我們前面所說的:模型類負責與資料庫互動,控制器負責呼叫模型類
為了更加清晰的理解控制器與模型的關係,在控制器中再編寫乙個用於查詢的方法
public function selectaction()
控制器中的selectaction 方法呼叫了模型中的方法獲取資料庫中的資料,這也是控制器呼叫模型類獲取資料的經典案例
為了檢視效果,我們執行當前的程式,呼叫控制器的方法,看看結果
問題來了?我們在瀏覽器中怎麼輸入位址呢?直接訪問控制器類?絕對不行的。
解決方案是,在**根目錄下建立乙個php檔案,可以命名為 index.php
我們在瀏覽器中訪問這個檔案,然後在這個檔案中,例項化控制器類,再呼叫控制器中的方法
require_once 'controller/userscontroller.class.php';
$controller = new userscontroller();
$controller->addaction();
檢視資料庫,一條記錄被儲存到資料庫中、
修改**,改為呼叫select方法查詢資料庫的資料
require_once 'controller/userscontroller.class.php';
$controller = new userscontroller();
$controller->selectaction();
先不忙著仿照userscontroller類建立另外的兩個控制器
上面**中,我們在控制器中引入了模型中的factory.class.php檔案
require_once 'model/factory.class.php';
但是觀察一下當前的目錄結構
發現,userscontroller和factory.class.php 分布在兩個目錄下,所以按照正常的寫法應該是
require_once '../model/factory.class.php';
但這種寫法是無法被正確載入的
原因在於,index.php 是我們在瀏覽器中訪問的檔案,在這個檔案中引入了 userscontroller.class.php
require_once 'controller/userscontroller.class.php';
我們講過,所謂引入和包含,其實就是將這個檔案中的**全部拷貝乙份到當前檔案中,也就是拷貝到了index.php 中,所以,userscontroller中引入其他檔案時,應該時站在index.php的角度,所以使用下面的方式引入
require_once 'model/factory.class.php';
仿照userscontroller 類編寫另外兩個類的** 簡單封裝自定義MVC框架
自定義mvc框架結構及其使用方法 一,什麼是mvc框架 mvc框架全名是 model 模型 controller 控制器 view 視 件 所構成的一種開發框架,是一種典型的 軟體設計典範,用一種業務邏輯,資料,顯示相分離的方法組織 其好處是將業務邏輯聚集到乙個部件裡面,在改進和指定個性化頁面的同時...
簡單封裝自定義MVC框架
自定義mvc框架結構及其使用方法 一,什麼是mvc框架 mvc框架全名是 model 模型 controller 控制器 view 視 件 所構成的一種開發框架,是一種典型的 軟體設計典範,用一種業務邏輯,資料,顯示相分離的方法組織 其好處是將業務邏輯聚集到乙個部件裡面,在改進和指定個性化頁面的同時...
自定義tabBar控制器
一 控制器部分 import jrtabbarconroller.h import jrtabbar.h inte ce jrtabbarconroller property nonatomic,weak uiviewcontroller currentvc end implementation j...