Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mvc again..., kilka prostych pytan:)
kicaj
post
Post #1





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Dawno mnie tu nie bylo...

Mialem przerwe w pisaniu i chcialbym wziasc sie odrazu za MVC.
Mam wiec kilka pytan, stworzylem sobie np. ArticleModel.php i ArticleView.php:
1. Jak napisac Kontroler, ktory bedzie w/w model i widok laczyl? Istnieje jeden kontroler dla calej witryny czy jeden kontroler dla kazdego modelu i widoku. Czy wywolanie akcji z ArticleModel.php jest mozliwe czy odbywa sie tylko i wylacznie poprzez Kontroler?
2. Jak w ArticleView.php przekazac wyniki do np. przegladarki. Klasa ma byc potomkiem klasy do szablonów?
3. Czy taki sposob przekazania SQL jest dobry:
  1. <?php
  2.  
  3. $db = DataBase::Connect( 'localhost',... ) // Connect = singleton
  4.  
  5. class ArticleModel
  6. {
  7. function __construct( $db ) 
  8. {
  9. $this -> db = $db;
  10. ...
  11.  
  12. ?>

Dzieki z gory
Go to the top of the page
+Quote Post
aleksander
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


1. ja zawsze mam jeden kontroler dla całej witryny który wywołuje porządane widoki które z kolei wywołują porządane modele (o ile potrzebne)

2. Mozesz w widoku stworzyc instancję systemu szablonów możesz ją rozszerzyć, jak Ci wygodnie.

3. proponowałbym w modelu tworzyć instancję a nie przekazywać ją w parametrze chociaż niektórzy (o ile pamiętam w pinkim Vengeanca) inicjują baze oddzielnie:)
Go to the top of the page
+Quote Post
bela
post
Post #3


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Zacznę od końca.

Cytat
3. Czy taki sposob przekazania SQL jest dobry

Przecież obiekt db nie zostanie przekazany, bo db jest argumentem konstruktora a więc zmienną lokalną w jego obrębie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Lepiej zrobić coś takiego

  1. <?php
  2. $db = DB::connect(...);
  3. $am = new ArticleModel($db); // lub new ArticleModel(&$db); dla php4
  4. ?>


Cytat
2. Jak w ArticleView.php przekazac wyniki do np. przegladarki. Klasa ma byc potomkiem klasy do szablonów?

Może, nie musi. Ja rozwiązałem to tak, że mam ViewManager, który dostaje dane o szablonach i danych które je wypełnić. Napisałem sobie też mały obiekt MySmarty, który automatycznie konfiguruje je.

Cytat
1. Jak napisac Kontroler, ktory bedzie w/w model i widok laczyl? Istnieje jeden kontroler dla calej witryny czy jeden kontroler dla kazdego modelu i widoku. Czy wywolanie akcji z ArticleModel.php jest mozliwe czy odbywa sie tylko i wylacznie poprzez Kontroler?


Najprostszy przykład.
  1. <?php
  2. $id = (int)$_GET['id'];
  3. $am = new ArticleModel($db);
  4.  
  5. $result = $am->getById($id);
  6. $av = new ArticleView();
  7. $av->setResult($result);
  8. $av->display();
  9. ?>


Tylko szkic.

Kontroler odpowiada za wykonia żądania. Czy dla każdego żądania zrobisz jeden kontroler, czy będziesz miał jeden kontroler dla wszystkich żądań to nie ma znaczenia.
Go to the top of the page
+Quote Post

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: 18.09.2025 - 15:59