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 :: Версия для печати :: Архитектура приложения MVC
Форумы портала PHP.SU » » Вопросы новичков » Архитектура приложения MVC

Страниц (1): [1]
 

1. petr - 12 Февраля, 2013 - 12:14:38 - перейти к сообщению
Здравствуйте.
Пишу приложение на php, используя ооп и mvc.
Правильно ли использовать следеющую архитектуру?
Если не правильно, то что и как сделать лучше?
Расскажу на примере вывода меню.

Модель:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  require_once '../config/db.php';
  3.  
  4.  class Mmenu extends Db{
  5.      public function return_menu(){
  6.          $sql="SELECT id, menu_name FROM pages";
  7.          $res=$this->sql($sql);
  8.          return $res;
  9.      }
  10.  }


Контроллер:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once '../models/mmenu.php';
  3.  
  4. class Cmenu extends Mmenu{
  5.     public function print_menu(){
  6.         $res=$this->return_menu();
  7.         while($row=mysql_fetch_assoc($res)){
  8.             $mname[$row['id']]=$row['menu_name'];
  9.         }
  10.         return $mname;
  11.     }
  12. }
  13. $aux_vmenu=new Cmenu();
  14. $vmenu=$aux_vmenu->print_menu();
  15.  

Вид:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once '../controllers/cmenu.php';
  3.  
  4. echo "<ul>";
  5. foreach($vmenu as $uri=>$link){
  6.     echo "<li><a href='?id=".$uri."'>".$link."</a></li>";
  7. }
  8. echo "</ul>";


Спасибо
2. DeepVarvar - 12 Февраля, 2013 - 12:54:43 - перейти к сообщению
petr пишет:
Правильно ли использовать следеющую архитектуру?
Если не правильно, то что и как сделать лучше?
Негатива нет, есть то, что вижу снова одно и то же..
Все у вас тут - бред.
Контроллер не может наследоваться от модели.
Модель не может наследоваться от "бидэ".
Смысл тогда? Почему бы не вызвать запрос прям в контроллере? Он же унаследовался от "биде" тоже, через посредника "мамдель".

А это что такое:
petr пишет:
$res=$this->return_menu();
while($row=mysql_fetch_assoc($res)){
$mname[$row['id']]=$row['menu_name'];
}
??? Где хваленый "третий кит" ИНКАПСУЛЯЦИЯ?

Давайте вы чутка повремените с ООП.
Вернитесь пока к процедурке.
И вот тут почитайте: http://forum.php.su/topic.php?forum=33&topic=793 Закатив глазки
3. sKaa - 12 Февраля, 2013 - 13:43:31 - перейти к сообщению
Всё ооп сводится, у начинающих, к тому, что они обычный процедурный стиль заворачивают внутрь пресловутого "class"...
4. DelphinPRO - 12 Февраля, 2013 - 15:16:03 - перейти к сообщению
petr пишет:
Правильно ли использовать следеющую архитектуру?

Где здесь "архитектура"?
5. caballero - 12 Февраля, 2013 - 15:19:50 - перейти к сообщению
Цитата:
Пишу приложение на php, используя ооп и mvc.
Правильно ли использовать следеющую архитектуру?

паттерн MVC уже определяет архитектуру, независимо от того правильно это или нет.
Не очень толко понятно это архитектура чего? Архитектупа "вообще" как то представляется с трудом.

 

Powered by ExBB FM 1.0 RC1