Я создал свой MVC для бесплатного курса PHP, который я провожу для нескольких людей, желающих стать лучше в PHP.
На сегодняшний день лучший способ сделать это - использовать шаблон Command + Factory.
Например:
interface ControllerCommand
{
public function execute($action);
}
В каждом контроллере:
class UserController implements ControllerCommand
{
public function execute($action)
{
if ($action == 'login')
{
$data['view_file'] = 'views/home.tpl.php';
}
else if ($action == 'edit_profile')
{
$data['view_file'] = 'views/profile.tpl.php';
$data['registration_status'] = $this->editProfile();
}
return $data;
}
}
От вашего главного фронт-контроллера:
$data = ControllerCommandFactory::execute($action);
if (!is_null($data)) { extract($data); }
/* We know the view_file is safe, since we explicitly set it above. */
require $view_file;
Дело в том, что каждый класс Controllercommand имеет функцию execute, которая возвращает свое представление и любые данные для этого представления.
Для полного MVCВы можете получить доступ к приложению с открытым исходным кодом, написав мне на theodore [at] phpexperts.pro.