[PHP] MVC модель. CodeIgniter.

Discussion in 'PHP' started by Sams, 22 Jun 2012.

  1. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Доброго времени суток.
    Возникло пару вопрос по модели MVC (Модель-Представление-Контроллер) касаемо фреймворка CodeIgniter. Прошу помощи.

    1. Вопрос касается использования модуля шаблонизатора. Если учитывать концепцию MVC модели, то где должны храниться массивы данных, которыми парсер заменяет шаблонные теги в Представлениях? В самом Представлении они находиться не могут. Если размещать в Контроллере, то получиться, как это написано на Вики - ТТУК (Толстый Тупой Уродливый Контроллер), который противоречит концепции MVC. Остается только Модель. Правильное-ли это будет решение запихивать в неё несколько массивов для замены парсером нескольких Представлений? И где в таком случае должен вызываться сам парсер, в Контроллере?

    2. С точки зрения оптимизации, насколько выше быстродействие при использовании альтернативного PHP в Представлениях в отличии от использования модуля шаблонизатора?

    Заранее благодарен.
     
  2. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    1) с данными лучше работать в моделях...в контроллере ты по сути должен только получать данные от пользователя -> проводить какие то операции в модели и полученые результаты отправлять в шаблон через либу view либо parser
    2) насрать...несущественно...я всегда использую нативный шаблонизатор ( $this->load->view('page', $data) ), а в нем использую альтернативный синтаксис (просто короче)... если использовать класс parser то ещё будут затраты времени и ресурсов на парсинг тегов
     
    1 person likes this.
  3. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Отлично. Большое спасибо за вразумительный ответ.
     
  4. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    И еще парочка вопросов:
    В концепции MVC сказано, что обработкой данных занимается Контроллер. Тогда получается если Контроллер принимает, к примеру, POST запрос от какой-либо формы, то экранирование, преобразование типов, и т.д. лежит именно на его плечах, а не на Модели? Или же данные просто передаются Модели, а та в свою очередь занимается экранизацией, etc?
    И второй вопрос, который непосредственно связан с первым - валидация данных формы. Данный модуль вызывается из под Контроллера? Ведь по сути это тоже обработка входных данных.

    Заранее благодарен.
     
    #4 Sams, 23 Jun 2012
    Last edited: 23 Jun 2012
  5. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Контроллер, контроллер.
     
    2 people like this.
  6. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    1) в конфиге поставь от xss защиту и он налету будет фильтровать все входяшие запросы. А так в контроллере
    2) я обычно делаю в контроллере...а так делай как тебе удобнее...можешь создать модель с заданными правилами валидации если например они используются в нескольких местах и просто вызывать метод модели