今天我決定開始依靠PHP框架,因爲每次從頭開始編寫都非常耗時。作爲我的框架,我選擇了CodeIgniter,並且我想說這很棒,易於使用。但我有一些問題和困惑。我不確定如何構建我的網站,因爲我不知道何時使用模型以及何時使用控制器。
我有現在的問題是:
CodeIgniter模型和控制器混淆
頁面控制器
// PAGES CONTROLLER
// As its name, this controller simply loads pages by a url query.
class Pages extends CI_Controller {
/*
* Constructor - loads the variables model.
*/
public function __construct() {
parent::__construct();
$this->load->model ('variables');
}
/*
* Displays a page by its name.
*/
public function view($page = 'home') {
if (! file_exists ("application/views/pages/$page.php")) {
show_404();
}
$data ['title'] = ucfirst ($page);
$data ['variables'] = $this->variables;
$this->load->view ("templates/header", $data);
$this->load->view ("pages/$page", $data);
$this->load->view ("templates/footer", $data);
}
}
變量模型
// VARIABLES MODEL
// Used like a "mysql variables", all the data is taken from a table contains 2
// rows: id and value. and those variables are mostly used for site settings.
class Variables extends CI_Model {
/*
* Constructor, simply loads the database.
*/
public function __construct() {
$this->load->database();
}
/*
* Gets a variable stored in the database.
*/
public function get($id) {
$query = $this->db->get_where ('variables', array (
'id' => $id
));
return $query->row_array()["value"];
}
/*
* Sets a variable stored in the database.
*/
public function set($id, $value) {
$this->db->where ('id', $id);
$this->db->update ('variables', array (
'value' => $value
));
}
}
我使用正確的層次結構?有什麼我可以改變的嗎?
現在我的主要問題:讓我們說,例如,我想爲我的網站添加一個會員功能。我應該做以下事情嗎? :
成員控制器 - 管理當前成員,並且所有表單操作都導致與成員模型通信的此控制器(請參見下文)。
成員模型 - 處理所有的數據庫處理,功能如:login,register,getMember。
處理請求和傳遞數據查看,同時使用型號爲您所有的數據庫交互和實施系統的所有業務邏輯模型中使用視圖只用於顯示數據 –
@MKhalidJunaid使用控制器非常感謝您的快速回答,我已經知道你剛剛告訴我的是什麼,但是我的主要問題是如果我對我給出的例子正確。 –
你也應該看看HTML5鍋爐板的建設網站結構.... http://ariok.github.io/codeigniter-boilerplate/ – Christopher