Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MVC] Ładowanie modelu
PiotrekM
post
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 6
Dołączył: 20.12.2009

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


Witam,
piszę mały silnik dla swojej aplikacji. Chcę go oprzeć o wzorzec MVC. Chciałbym zrobić ładowanie modelu podobnie jak w kohanie, tylko jest jeden problem.
Mam klase loader, metode model.
  1. public function model( $name) {
  2.  
  3. //require
  4. require MODELS_PATH . $name . '.php';
  5. $this -> $name = new $name;
  6. }

gdy w kontrolerze dziedzicze klase loader, to przy tworzeniu modelu pole tworzy się w klasie loader, więc z kontrolera nie mam bezpośredniego dostępu $this -> pole.
Jak można by to inaczej zrobić? Jestem otwarty na propozycje (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
PiotrekM
post
Post #2





Grupa: Zarejestrowani
Postów: 130
Pomógł: 6
Dołączył: 20.12.2009

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


  1. <?php
  2. //loader on controller
  3. class loader {
  4.  
  5. /**
  6. * method view
  7. *
  8. */
  9.  
  10. public function view( $file, $array = true) {
  11.  
  12.  
  13. //if second argument is array
  14. if( is_array( $array)) {
  15.  
  16. foreach( $array as $item => $val) {
  17.  
  18. //this is vars
  19. $$item = $val;
  20. }
  21. }
  22.  
  23. //display view
  24. include VIEWS_PATH . $file . '.php';
  25. }
  26.  
  27. /**
  28. * method model
  29. *
  30. */
  31.  
  32. public function model( $name) {
  33.  
  34. //require
  35. require MODELS_PATH . $name . '.php';
  36. $this -> $name = new $name;
  37. }
  38. }
  39.  
  40. class controller {
  41.  
  42. public function __construct() {
  43.  
  44. $this -> load = new loader;
  45.  
  46. $this -> load -> model('test');
  47.  
  48. echo $this -> test -> oki();
  49. }
  50. }


Ten post edytował PiotrekM 21.02.2010, 00:03:10
Go to the top of the page
+Quote Post

Posty w temacie
- PiotrekM   [MVC] Ładowanie modelu   20.02.2010, 22:47:18
- - darko   Jeśli dobrze zrozumiałem, to chcesz wywołać metodę...   20.02.2010, 23:01:41
- - PiotrekM   sory, troche w błąd wprowadziłem. nie chce dziedzi...   20.02.2010, 23:06:38
- - darko   Magiczne setter i getter powinny wystarczyć. ps. ...   20.02.2010, 23:14:07
- - PiotrekM   nie wiem jak to można zastosować, szczerze mówiąc ...   20.02.2010, 23:20:02
- - darko   http://www.php.net/manual/en/language.oop5...loadi...   20.02.2010, 23:21:26
- - PiotrekM   nie rozumiem jak chcesz to niby zastosować?   20.02.2010, 23:27:36
|- - darko   Cytat(PiotrekM @ 20.02.2010, 23:27:36...   20.02.2010, 23:52:24
- - PiotrekM   [PHP] pobierz, plaintext <?php //loader on cont...   21.02.2010, 00:02:54
- - darko   [PHP] pobierz, plaintext class test { public ...   21.02.2010, 00:17:37
- - PiotrekM   nie działa: Notice: Undefined property: controlle...   21.02.2010, 00:26:18
- - darko   Zedytowałem swojego poprzedniego posta zmieniając ...   21.02.2010, 00:27:28
- - PiotrekM   działa, ale nie tak jak powinno. Chciałem przy ład...   21.02.2010, 00:33:30
|- - darko   Cytat(PiotrekM @ 21.02.2010, 00:33:30...   21.02.2010, 00:39:15
- - PiotrekM   sęk w tym, że chce się do tego zwracać w konstrukt...   21.02.2010, 00:41:56
- - darko   Myślałem, że już się sam domyślisz o co chodzi: [...   21.02.2010, 00:44:49
- - PiotrekM   Dzięki staruszku, w nocy się nie domyślam niczego ...   21.02.2010, 00:50:57
|- - darko   Cytat(PiotrekM @ 21.02.2010, 00:50:57...   21.02.2010, 00:54:40
- - PiotrekM   czekaj, czekaj, bo o jednej rzeczy zapomnieliśmy ...   21.02.2010, 00:58:50
- - darko   O niczym nie zapomnieliśmy zerknij na metodę _load...   21.02.2010, 01:01:53
- - PiotrekM   otóż to, chciałem ładować $this -> load -...   21.02.2010, 01:06:25
- - starach   A nie lepiej przekazywać od razu instancje klas mo...   21.02.2010, 16:29:22
- - mls   Zadam może niewłaściwe pytanie, ale... dlaczego po...   27.02.2010, 00:05:42


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: 26.12.2025 - 01:35