Доброго времени суток. Возникло пару вопрос по модели MVC (Модель-Представление-Контроллер) касаемо фреймворка CodeIgniter. Прошу помощи. 1. Вопрос касается использования модуля шаблонизатора. Если учитывать концепцию MVC модели, то где должны храниться массивы данных, которыми парсер заменяет шаблонные теги в Представлениях? В самом Представлении они находиться не могут. Если размещать в Контроллере, то получиться, как это написано на Вики - ТТУК (Толстый Тупой Уродливый Контроллер), который противоречит концепции MVC. Остается только Модель. Правильное-ли это будет решение запихивать в неё несколько массивов для замены парсером нескольких Представлений? И где в таком случае должен вызываться сам парсер, в Контроллере? 2. С точки зрения оптимизации, насколько выше быстродействие при использовании альтернативного PHP в Представлениях в отличии от использования модуля шаблонизатора? Заранее благодарен.
1) с данными лучше работать в моделях...в контроллере ты по сути должен только получать данные от пользователя -> проводить какие то операции в модели и полученые результаты отправлять в шаблон через либу view либо parser 2) насрать...несущественно...я всегда использую нативный шаблонизатор ( $this->load->view('page', $data) ), а в нем использую альтернативный синтаксис (просто короче)... если использовать класс parser то ещё будут затраты времени и ресурсов на парсинг тегов
И еще парочка вопросов: В концепции MVC сказано, что обработкой данных занимается Контроллер. Тогда получается если Контроллер принимает, к примеру, POST запрос от какой-либо формы, то экранирование, преобразование типов, и т.д. лежит именно на его плечах, а не на Модели? Или же данные просто передаются Модели, а та в свою очередь занимается экранизацией, etc? И второй вопрос, который непосредственно связан с первым - валидация данных формы. Данный модуль вызывается из под Контроллера? Ведь по сути это тоже обработка входных данных. Заранее благодарен.
1) в конфиге поставь от xss защиту и он налету будет фильтровать все входяшие запросы. А так в контроллере 2) я обычно делаю в контроллере...а так делай как тебе удобнее...можешь создать модель с заданными правилами валидации если например они используются в нескольких местах и просто вызывать метод модели