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
Форумы портала PHP.SU :: Версия для печати :: Урок №19 - Немного о паттернах [7]
Форумы портала PHP.SU » PHP » Уроки php » Урок №19 - Немного о паттернах

Страниц (7): « 1 2 3 4 5 6 [7]
 

91. esterio - 09 Октября, 2013 - 11:33:24 - перейти к сообщению
Урок не смотрел, но все же
1. запуск контролера
2. контролер дергает модели по данные
3. контроллер складивает данные в массив
4. контролле визивает рендеринг вюхы с данными массива
5. во вюхе могут быть операторы представления (for, foreach, if, else)
6. контролер выводит отрендерену вюху

Как-то так
92. spirit - 09 Октября, 2013 - 17:23:42 - перейти к сообщению
esterio, а в чем смысл рендеринга? почему просто через инклюды нельзя?
93. esterio - 09 Октября, 2013 - 17:26:51 - перейти к сообщению
а что такое по вашему рендеринг?
В большинстве случаев ето
PHP:
скопировать код в буфер обмена
  1. function template($template)
  2. {
  3.     ob_start();
  4.     include($template);
  5.     return ob_get_clean();
  6. }


А в котролере
PHP:
скопировать код в буфер обмена
  1. public function indexAction()
  2. {
  3.     echo template('index.php');
  4. }


Как-то так.

П.С. ето всего-лишь пример
94. EuGen - 09 Октября, 2013 - 17:27:52 - перейти к сообщению
spirit
Смысл Вашего вопроса - ровно в том же, как это было бы в случае вопроса "Почему вообще MVC? Разве нельзя делать напрямую, вставляя PHP в HTML?". Можно. MVC - это идея и представление (view) - его часть. Использовать это или нет - вопрос другой.
esterio
Далеко не всегда это так. В случае, если используется шаблонизатор - рендеринг есть отдельный процесс пост-обработки этого шаблона для получения готового результата.
95. esterio - 09 Октября, 2013 - 17:30:51 - перейти к сообщению
EuGen пишет:
Далеко не всегда это так. В случае, если используется шаблонизатор - рендеринг есть отдельный процесс пост-обработки этого шаблона для получения готового результата.

Согласен, но многие фреймворки используют етот вариант или имеют оберткы над шаблонизаторами
96. spirit - 09 Октября, 2013 - 19:55:50 - перейти к сообщению
EuGen, воот, т.е. рендеринг шаблона это особенность MVC!?

Еще вопрос по поводу адресов. Читал-читал посты влома, так ниче и не понял. Мод_реврайт теперь не работает. Ранние ЧПУ выглядели "/category/1", теперь "/category/view/1"

Для преобразования к старому виду я добавил метод в роутер, который этим занимается. Правильное ли это решение или можно применить более изящноеУлыбка?

PHP:
скопировать код в буфер обмена
  1.  
  2. protected function rewrite($route_array){
  3.        
  4.        
  5.        
  6.        
  7.         if ($route_array[0] == "index.php" or $route_array[0] == ""){
  8.             $route_array[0] = "main";
  9.             $route_array[1] = "main";
  10.                
  11.         }
  12.        
  13.         if ($route_array[0] == "category" && preg_match("/^[0-9]+$/", $route_array[1])){
  14.             $route_array[2] = $route_array[1];
  15.             $route_array[1] = "view";
  16.                
  17.         }
  18.        
  19.         return $route_array;
  20.            
  21.     }
  22.  
  23.  
  24.  
97. caballero - 09 Октября, 2013 - 20:00:46 - перейти к сообщению
Цитата:
воот, т.е. рендеринг шаблона это особенность MVC

ренденринг шаблона - это особенность реалиизации шаблонизатора. MVC тут вообще ни при чем.
98. EuGen - 10 Октября, 2013 - 09:54:44 - перейти к сообщению
spirit пишет:
воот, т.е. рендеринг шаблона это особенность MVC!?

Нет. MVC - это лишь концепция, не следует путать её с одной из её возможных реализаций (см. выше комментарий Леонида)
99. spirit - 13 Октября, 2013 - 14:51:43 - перейти к сообщению
На мой вопрос по поводу реврайтинга никто не ответит?Недовольство, огорчение
100. caballero - 13 Октября, 2013 - 14:59:08 - перейти к сообщению
на вопрос "правильное ли это решение" можно было не ждать ответа несколько дней а просто проверить - работает оно или нет.

 

Powered by ExBB FM 1.0 RC1