За последние 24 часа нас посетили 18211 программистов и 2159 роботов. Сейчас ищут 1298 программистов ...

PHP MVC - view!

Тема в разделе "Прочие вопросы по PHP", создана пользователем Awilum, 14 мар 2012.

  1. Awilum

    Awilum Активный пользователь

    С нами с:
    15 ноя 2009
    Сообщения:
    325
    Симпатии:
    26
    Адрес:
    Earth
    Во многих фреймворках вьюхи в контроллер подгружаются с помощью специального класса.
    Например это может выглядеть так в контроллере в каком то из его методов.

    Код (Text):
    1. $this->view('index');
    или

    Код (Text):
    1. $this->view('index')->assign('user', 'Sergey');
    Может просто это усталость и туплю, но кто помешает вьюху тупо приинклудить ?

    Код (Text):
    1. ....
    2. include 'path/to/views/index.html';
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    концепция нарушается
    + объектами можно легко рулить, а инклудами уже сложнее.
    + зависимость от пути и требуется вводить всякие константы и т.п...

    тебе не все равно? =) Фреймворк это произведение авторское по-сути. Так что там можно ожидать чего угодно. Либо ты это принимаешь, либо проходишь мимо =)

    (есть еще третий вариант: пишешь свой фрейморк и тебя перестают брать на работу пока весь хабр не будет исписан постами о твоем фреймворке)
     
  3. Amperandus

    Amperandus Активный пользователь

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    Ну где то на нижнем уровне и идет инклюд вьюхи.
     
  4. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Я у себя с помощью require_once инклюдю.
    Очень коряво получается, но пока работает:
    Код (Text):
    1. <?php
    2.    define("XCONT", "true");
    3.  
    4.     if($_GET['mode']!="register") {
    5.        echo "<a href=\"profile.php?mode=register\">Регистрация</a>";
    6.     }
    7.  
    8.    if($_GET['mode']=="register") {
    9.       if($_GET['agreed']=="true"){
    10.          require_once "views/vregisteruser.php" ;
    11.       }else{
    12.          echo "rools <br>";
    13.          echo "<a href=\"profile.php?mode=register&agreed=true\">Прочитал правила и согласен</a>";
    14.       }
    15.    }
    16.    
    17.     if($_POST) { // если отправлены данные, срабатывает этот блок
    18.         require_once "controllers/cregisteruser.php" ;
    19.         $vcreateuser->post_data($_POST) ;
    20.     }
    21. ?>