今天我决定开始依靠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