Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]MVC i struktura aplikacji
MadHatter
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 15.02.2007

Ostrzeżenie: (0%)
-----


Hej,

Mam takie pytanie, starm sie napisac strone stosujac wzorzec MVC, stosuje przy tm Smarty i Peara ale to nie wazne. Glowny problem dla mnie tkwi w teorii samego rozwiazania. Otoz jesli chodzi o sterowanie kacja to jest niby wszystko dosc proste ale nie wiem czy zalozenie dobrze rozumiem. Wysiwetlenie strony polega na tym ze zmianie ulega tytul, dane ktore pojawiaja sie w dziale content, tlo strony i boczne menu. Nie wiem wiec czy stosowac i pisac osobne akcje dla kolejnych odslon, czy napisac jedna mmetode klasy Controllera, pobierajaca odpowiednie parametry. Nie chce tutaj podawac kodu, ktory juz napisalem, bo jest go dosc sporo, ale powiem tylko ze obecnie lacze klasy modelu, akcji i widoku z instrukcja switch-case w indexie i wlasnie nie wiem czy teoretycznie jest to zgodne z zalozeniami MVC. Dodam ze nie zalezy mi narazie na optymalizacji skryptu a raczej na zglebieniu samej teorii.

Dzieki i pozdrawiam.

Ten post edytował MadHatter 24.06.2007, 02:03:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
MadHatter
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 15.02.2007

Ostrzeżenie: (0%)
-----


Dziekuje za odpowiedzi. Nie chce robic offtopa, jesli to zly dzial, ale jak zaczalem pytac, to poprostu chodzi o to czy dobrze rozumiem idee MVC, czy np. instrukvja case, ktora podaje pod spodem a ktora znajduje sie w pliku index, powinna byc wlasnie tam, a jesli nie to jakie miejsce jest najbardziej odpowiednie dla niej. Mam obawe wpychania jej w metode jakiejs klasy, z tego wzgledu ze zdaje mi sie iz klasy powinny byc jak najbardziej ogolne(tylko wzorami dla obiektow), jesli wiec w klasie umiescilnbym tak szczegolowe parametry $tablica settings, to czy nie kluci sie tym samym z zalozeniami elastycznosci OOP. Wybaczcie prostote kodu, wolalem spytac, zanim klasy nie roznasnal sie bardziej tracac czytelnosc.

Plik index.php:
  1. <?php
  2. $page=$_GET['page'];
  3. $id=$_GET['id'];
  4.  
  5. switch($page){
  6. case 'contact-address':
  7. $settings['tableName']='kontakt_dane';
  8. $settings['title']='dane teleadresowe';
  9. $settings['cNum']=2;
  10. $settings['background']='address_bg.jpg';
  11. $settings['specialQuery']='SELECT * FROM '.$settings['tableName'];
  12. break;
  13. // Pozostale opcje switch;
  14. $view->setLayout($settings);
  15. $view->displayLayout('main.tpl');
  16. ?>


i klasa view:
  1. <?php
  2. class MVCView{
  3. public $smarty;
  4. public function __construct(){
  5. $this->smarty=new Smarty();
  6. }
  7. public function setLayout($settings){
  8. $this->smarty->assign('title',$settings['title']);
  9. $this->smarty->assign('background',$settings['background']);
  10. $this->smarty->assign('cNum',$settings['cNum']);
  11. $this->smarty->assign('leftCol', $settings['leftCol']);
  12. $this->smarty->assign('createLinks', $settings['createLinks']);
  13. $this->smarty->assign('leftMenuLink', $settings['leftMenuLink']);
  14. $this->smarty->assign('rightCol', $settings['rightCol']);
  15. $this->smarty->assign('includeImages', $settings['includeImages']);
  16. $this->smarty->assign('imagesResults', $settings['imagesResults']);
  17. $this->smarty->assign('mainMenuLink',$settings['mainMenuLink']);
  18. }
  19. public function displayLayout($layout){
  20. $this->smarty->display($layout);
  21. }
  22. }
  23. ?>


Dzieki i pozdrawiam!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 02:38