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


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 20:10