Может ли кто-нибудь представить очень простой пример Hello World в подходе MVC к PHP?
Вот несколько «Привет, мир» MVC:
function get_users() { return array( 'Foo', 'Bar', 'Baz', ); }
function users_template($users) { $html = '<ul>'; foreach ($users as $user) { $html .= "<li>$user</li>"; } $html .= '</ul>'; return $html; }
function list_users() { $users = get_users(); echo users_template($users); }
Основная идея состоит в том, чтобы разделить доступ к данным (модель) от представления данных (просмотра). Контроллер должен делать не более, чем подключение двух вместе.
Вот самый простой пример. Ваш файл index.php является контроллером, получает некоторые данные из модели, затем включает HTML через файл вида.
/* index.php?section=articles&id=3 */ // includes functions for getting data from database include 'model.php'; $section = $_GET['section']; $id = $_GET['id']; switch ( $section ) { case 'articles': $article = getArticle( $id ); include 'article.view.php'; }
,
/* article.view.php */ <html> <head> <title><?=$article['title']?></title> </head> <body> <h1><?=$article['title']?></h1> <p><?=$article['intro']?></p> <?=$article['content']?> </body> </html>
QuickStart Zend Framework – не очень плохой пример «простого приложения» (не «Hello World», но не намного больше), а использование MVC для приложения «Hello World» немного похоже на использование ядерной бомбы для убийства ошибка) , основанная на Zend Framework, и использование MVC.
После того, как вы захотите немного поближе, вы можете взглянуть на электронную книгу Survive The Deep End! – все еще работа в процессе, но интересное чтение в любом случае.
Это с ZF; Я полагаю, вы можете найти то же самое с другими MVC Framework, такими как Symfony или CakePHP.