Сегодня я решил, что должен начать полагаться на фреймворк PHP, потому что писать с нуля каждый раз действительно утомительно. В качестве моей структуры я выбрал CodeIgniter, и я хочу сказать, что это потрясающе и легко использовать. Но у меня есть некоторые вопросы и замешательство. Я не очень уверен, как структурировать мой сайт, так как я не знаю, когда использовать модели и когда использовать контроллеры.
То, что я прямо сейчас:
Модели и контроллеры CodeIgniter Confusion
Pagès Controller
// 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
));
}
}
Могу ли я, используя правильную иерархию? Я могу что-то изменить?
Теперь для моего основного вопроса: скажем, например, что я хочу добавить функциональность членства для своих сайтов. Должен ли я сделать следующее? :
Member Controller - Управление текущим элементом и все действия с формами приводят к этому контроллеру, который взаимодействует с моделью Members (см. Ниже).
Модель участников - обрабатывает всю обработку базы данных, выполняет функции, такие как: login, register, getMember.
Использование контроллеров для обработки запросов и передачи данных для просмотра при использовании моделей для всего взаимодействия с БД и реализации всех бизнес-логик вашей системы в моделях использовать представления только для отображения данных –
@MKhalidJunaid Большое спасибо за быстрый ответ, я уже знай, что ты только что сказал мне, но мой главный вопрос: правильно ли я с примером, который я дал. –
Вы также должны взглянуть на плиту котла HTML5 для создания структуры сайта .... http://ariok.github.io/codeigniter-boilerplate/ – Christopher