2012-04-17 3 views
0

Недавно я реализовал следующий код MVC, используя этот tiny mvc boilerplate. Я не хотел использовать Zend или Symfony, так как мне нужна только небольшая структура, но мне действительно нужно потратить это немного.PHP MVC - добавление дополнительных просмотров

Я новичок в PHP, поэтому задавался вопросом, использовал ли кто-нибудь это или знает, как я собираюсь добавить еще один вид. У меня есть версия ссылки, которую я использую для загрузки моего макета, но хотел бы добавить раздел содержимого в этом макете, который может вызывать другие страницы.

Любая помощь с этим будет замечательной!

+0

назовите его с этой точки зрения? Или лучше, используйте шаблон. – Michelle

+0

Итак, эта структура просто слишком полезна для использования в реальном мире, вам нужно управлять маршрутом сценария и быть жестко закодированным в один класс, чтобы вы могли просто вызвать controller.php, я думаю, что он просто предназначен для объяснения MVC ... Я рекомендую вам посмотреть этот учебник и узнать из исходных файлов. http://phpro.org/tutorials/Model-View-Controller-MVC.html –

+0

Спасибо за помощь. У меня было ощущение, что пример, который я использовал, слишком прост. – TLD

ответ

0

Боги внизу .. это видео ужасно.

В этом существующем примере, если вы хотите добавить еще один «вид» (который не является на самом деле то, что точка зрения), то нужен другой метод в контроллере:

class Controller 
{ 
    // -- snip -- 
    // you need to change the constructor too 
    public function __construct() 
    { 
     $this->load = new Load; 
     $this->model = new Model; 
    } 

    // -- snip -- 

    public function gallery() 
    { 
     $list = $this->model->get_urls(); 
     if (count($list) > 0) 
     { 
      $this->load->view('gallery.php' , $list); 
     } 
     else 
     { 
      $this->load->view('error.php', array(
       'source' => 'gallery', 
       'reason' => 'empty' 
      )); 
     } 
    } 

    // -- snip -- 
} 

И вы также должны изменить tinyMvc.php файл:

$c = new Controller; 
$action = 'home'; 
if (isset($_GET['page'])) 
{ 
    $action = $_GET['page']; 
} 

if (method_exists($c, $action)) 
{ 
    $c->{$action}(); 
} 
else 
{ 
    echo 'no such action !'; 
} 

Во всяком случае. Всего, что «учебник» использует термины MVC, это на самом деле не то, что там сделано. Его «представление» на самом деле просто простой шаблон. Это не совсем то, чему научиться делать для новичка, но его реализация тоже сосала. Если вы хотите узнать, как создавать простые родные шаблоны php, вы можете найти this article весьма полезным.

+0

Спасибо tereško. С тех пор я решил удалить вышеуказанный шаблон и использовать другой. В настоящее время я решаю между [PHPro] (phpro.org/tutorials/Model-View-Controller-MVC.html) и [Symfony2] (http://symfony.com). Я слышал, что [Codeigniter] (http://codeigniter.com/) хорош для новичков, но мне интересно, сожалею ли я о том, что буду использовать такой базовый в будущем. – TLD

+0

@DVL, CodeIgniter (наряду с CakePHP) - одна из худших фреймворков php. Избегайте его, когда это возможно. Symfony2 вполне приемлем, но это может быть слишком сложно для кого-то из вашего уровня. Вместо того, чтобы пытаться копаться в MVC, вы должны больше узнать о ООП .. что законы - это принцип, который связан с хорошо написанным объектно-ориентированным кодом. –

+0

Ну, у меня есть проект, чтобы закончить, так что действительно хочу застрять. Я должен забрать его быстро, поэтому хочу, чтобы я использовал нужные инструменты. Вы бы рекомендовали PHPro MVC? Кажется приятным и легким, что позволяет мне добавлять вещи в линию, если это необходимо. – TLD