Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: нужна критика, советы и помощ
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
откуда кто то может знать чего тут хватает а чего нет - все зависит от реализации. Классы не в воздухе висят
кто знает зачем нужен например getBody
а getinstamce ?
и чего там reflection делает
осваивать нужно с понимания сути предмета а не из чьего то одно частного случая реализации из стопицот возможных
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
ну вообще фронт контроллер, в общих чертах правильно реализован? допустим, верно то что в нем роутер? или часть отображения ($_body)? в боди заносится готовый контент и в бутстрепе выводится. отражение имхо очень полезная и удобная вещь, почему бы не применить?
etoYA
Отправлено: 04 Марта, 2012 - 17:02:14
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
Bio man, узнается специалист
caballero
Отправлено: 04 Марта, 2012 - 17:04:45
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
ну вообще фронт контроллер, в общих чертах правильно реализован?
правильно ли нет можно узнать только о если известно что он должен дделать
очень понятие растяжимое.
нужен ли там router может нужен а может и нет
а может роутер нужен вне контроллера
кто вообще дергает роутер
и что там делает рефлексия - полезна она или нет имеет смысл в констексте вопроса зачем она, какую функцию выполняет
Цитата:
в боди заносится готовый контент
кем , а главное зачем заносится. Почему надо заносить а не вывести в выходной поток сразу
кто и когда использует body
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
etoYA, ага. caballero, в общем ясно. фронт контроллер это такая "парадигма" чуть ли не как само ООП и четкого определение этому не существует. конечно я образно выразился и тут нет и доли правды но суть думаю ясна.
caballero
Отправлено: 04 Марта, 2012 - 17:20:12
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
фронт контроллер обычно стоит на входе сайта
обычная задача - распарсить запрос и перенаправить вызов нужному модулю или контроллеру.
это необязательно какойто класс даже - в большинствет случаев эту функцию можно реализовать в index.php куда через htaccess направляются вызовы
должен ли например фронт контроллер отвечать за сборку страницы с шаблонов и вывод данных - зависит от реализации архитектуры
можно так можно эдак
синглтон подразумевает гарантированное наличие только одного экземпляра класса. Поэтому нужно запретить клонирование и серилизацию объекта.
----- Чем больше узнаю, тем больше я не знаю.
Bio man
Отправлено: 04 Марта, 2012 - 17:33:26
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
поправьте если не так.
MVC состоит из 3 логических частей:
Model - часть приложения отвечающая за бизнес логику
View - шаблоны
Controller - мост между View и Model. Front Controller это единая точка входа. отвечает за подключение контроллеров. контроллер (не фронт) отвечает за обработку входящей информации (или этим занимается модель?), за передачу информации в модель и за вывод информации на экран (контроллер агрегирует модель View и возвращает в бутстрап). так я понимаю? знаю многое не написал но пока с этим не разобрался. (Добавление) DelphinPRO, само собой. но это не столь важно
etoYA
Отправлено: 04 Марта, 2012 - 17:40:01
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
Bio man, я столько статей на эту тему перечитал, и сам нихрена не понял, как будет правильней их сделать.. Там пишут одно, там-то пишут еще другое, и в общем совпадений я не нашел пока что)) (Добавление)
Как я понял:
Model - модуль работы с базой
View - вывод информации(не шаблон)
Controller - Соеденение Model и View
OrmaJever
Отправлено: 04 Марта, 2012 - 17:46:31
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Сразу замечание по логике кода, глубокие конструкции это не очень понятно, во многих случаях их можно сократить перевернув условие.
Например метод
Fatal error: Uncaught exception 'Exception' with message 'Wrong Interface' in Z:\home\test1.ru\www\application\controllers\FrontController.php:37 Stack trace:#0 Z:\home\test1.ru\www\index.php(11): FrontController->route() #1 {main} thrown in Z:\home\test1.ru\www\application\controllers\FrontController.php on line 37
в boot.php описываем правила автозагрузки, конфигурация роутингов, бд и т.д.
а в $App->run(); уже описывается логика совпадения паттерна маршрута, выполняется экшен контроллера, а его результат выдаётся на ответ.
собственно в экшене происходит обращение к модели, если оно действительно требуется т.к. есть случаи когда ответ можно сформировать без применения классов модели... далее в этом экшене формируется ответ, это может быть и просто строчка, например <b>Hello World</b>, а может быть и объект какого-то шаблонизатора с нужными параметрами для отображения.
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
etoYA
пример того что не следует тупо выдирать класы из чужих сорцов.
мало того что та нафиг не нужжный синглетон да еще и надо наследоватся непонятно нафига от какого то IController (потому и ошибка)
и рефлексия там бессмысленна потому как бессмысленно наследоватся от фронт контроллера.
Цитата:
Фронт-контроллер должен быть примерно такого вида:
я так и делаю, хотя это уже не совсем фронт контроллер, это именно Aplication, ядро системмы, отвечающее за жизненный цикл страниц
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.