Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Контроллер
 
 автор: jonik   (24.02.2012 в 22:49)   письмо автору
 
 

Итак перемещаюсь сюда и задаю свой вопросик.....

Как вообще должен выглядеть контроллер страницы?.... Вот я себе представил его так..... прошу подсказать, в правильном вообще я направлении двигаюсь.....
опишу все схематично...... У меня есть 2 противополжных варианта.....

1. Вариант

class indexcontroller extends controller{

инициализация и т.п.



private(Или Protected) function display departlist(){
берем из модели данные именно касающиеся этого списка, оцениваем результат, парсим шаблон и возвращаем готовую строку. с html-разметкой..........

}

private(Или Protected) function displayitemslist(){
выполняет тоже, что и метод выше, но работает со своими данными....

}

public function run(){

запускает вышеописанные методы


}
public function go(){
запихиваем в него html строки, которые вернули методы выше,
отправляем заголовки, подключаем главный шаблон и отправляем все в браузер......
}

}


2 вариант..... отличается толлько тем, что мы не привязываемся к содержимому.... а имеем методы типа

Get data() который оптом получает данные от модели и оценивает и передает их в.........
send data() который занимается отправкой в браузер.....


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


или я вообще далек от истины?

  Ответить  
 
 автор: cheops   (25.02.2012 в 14:02)   письмо автору
 
   для: jonik   (24.02.2012 в 22:49)
 

>берем из модели данные именно касающиеся этого списка, оцениваем результат, парсим
>шаблон и возвращаем готовую строку.
>или я вообще далек от истины?
Довольно таки да... А "Вид" у вас что будет делать? Вообще смысл этого паттерна в том, чтобы разделить логику от представления (а вы HTML в контроллер тащите). Т.е. создали вы модель, тут удобно - это база данных, создали дизайн страниц, сверстали, снабдили клиентским кодом - это вид. А вот регистрация пользователя, рассылка, постраничная навигация и пр., то что не зависит от дизайна, представления, но обслуживает базу данных - это контроллер. Вы вынимаете модель и контроллер из одного сайта, вставляете его в другой, меняете дизайн, компоновку, при этом в модели и в контроллере не меняется ни байта. А вы генерацию HTML в контроллер помещаете... это что угодно, но не контроллер. Это не значит, что так делать нельзя, просто лучше это не называть контроллером.

PS Web-разработка очень не удобная среда для изучения этих концепций, тут очень много языков и технологий. Контроллер у вас перемещается зачастую в JavaScript на строну клиента, код у вас выполняется на нескольких связанных сетью компьютерах... это все очень отвлекает, тем более, что тут многие задачи, для которых предназначался паттерн "Модель-Вид-Контроллер" решены совершенно другими средствами, тем же CSS, например.

  Ответить  
 
 автор: jonik   (25.02.2012 в 16:22)   письмо автору
 
   для: cheops   (25.02.2012 в 14:02)
 

>(а вы HTML в контроллер тащите). >
Я, видимо, неточно объяснил..... конечно в методе контроллера HTML не будет... просто этот метод вызовет нужный метод класса display который уже и будет подключать шаблон, парсить и подставлять в него данные.....

Ну да ладно, как вы правильно сказали, Web-разработка очень не удобная среда для изучения этих концепций. Разговариваю на работе с C-програмистом и реально понимаю, насколько разная специфика и подход.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования