Судя по всему, какой-то код, который звучит, входит в контроллер.
Вот разбивка MVC:
- Модель : Доступ к базе данных, предпочтительно с использованием объектно-ориентированного метода, который обрабатывает данные как объект.
- Просмотр : HTML-код страницы.
- Контроллер :Логика, позволяющая создавать динамическую страницу.
Это, вероятно, звучало действительно абстрактно.Общая идея представлений состоит в том, что они представляют собой HTML-шаблон с минимальными кодами, предпочтительно только повторяющими определенный динамический элемент страницы (НЕ HTML, обычно просто текст) и / или немного циклов if и foreach.Пример:
.... Your HTML code
<?php foreach ($page->users as $user): /* Loops through all the users */ ?>
<li><?php echo $user->name; /* echo their name */ ?></li> /
<?php endforeach; ?>
.... Your HTML Code
Идея контроллеров заключается в том, как заставить вашу страницу работать на самом деле, обрабатывая логику, получая информацию и тому подобное.Пример:
class Controller extends BaseController{
function indexpage($args=array()){
if ($args[0] == 'user') $user = UserModel::listUsers(); // If the argument to the controller is 'user' (could be provided by GET, or just the URL, we won't go into that), list all users.
$this->render('yourViewPage', array('user' => $user)); // renders the view file named yourViewPage.php and pass the value of $user into a variable named 'user'. As shown by above accessed via $page->user.
}
}
При условии, что вышеприведенный пример является лишь простым примером, вы получите точку.render()
отображает страницу и передает пару key => value
в массиве, так что представление имеет к ним доступ.
Модель - это взаимодействие с базой данных.Это позволяет получить доступ к базе данных без использования SQL (желательно).Пример:
class UserModel{
public $name;
public $openid;
public static function listUsers($offset=0, $max=20){
global $persister;
return $persister->list('UserModel', 0, 20, array('order'=>'NAME DESC'));
}
}
// Create a new user. This usually goes into the controller
$user = User();
$user->name = 'Your User'; // sets name
$user->openid = 'htto://theiropenidprovider.com/openid'; // sets openid
$persister->track($user); // Adds the user to be tracked. (the tracking info is usually written in XML, but we won't go into that).
$persister->flushAll(); // Saves to the database (kinda like commit)
// Gets the user.
$persister->find('UserModel', 'name', 'Your User') // Find the user that has the name of "Your User" in all UserModel instanced tracked.
Таким образом, модели не должны иметь наибольшее количество кодов.По моему мнению, у контроллеров было бы много кода, но это полностью зависит от сложности того, что вы строите.
Надеюсь, что это прояснит для вас.