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
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


  1. class test {
  2. public $test = 'test';
  3. public function Test() {
  4. return 'test method';
  5. }
  6. }
  7. /////////////
  8. //loader on controller
  9. class loader {
  10.  
  11. /**
  12. * method view
  13. *
  14. */
  15.  
  16. public function view( $file, $array = true) {
  17.  
  18.  
  19. //if second argument is array
  20. if( is_array( $array)) {
  21.  
  22. foreach( $array as $item => $val) {
  23.  
  24. //this is vars
  25. $$item = $val;
  26. }
  27. }
  28.  
  29. //display view
  30. include VIEWS_PATH . $file . '.php';
  31. }
  32.  
  33. /**
  34. * method model
  35. *
  36. */
  37.  
  38. public function model( $name) {
  39.  
  40. //require
  41. require MODELS_PATH . '.' . $name . '.php';
  42. //$this -> $name = new $name;
  43. return new $name;
  44. }
  45. }
  46.  
  47. class controller {
  48.  
  49. private $_models = array();
  50. protected $load = null;
  51.  
  52. public function __construct() {
  53.  
  54. $this -> load = new loader;
  55.  
  56. $this ->_models[] = $this->load -> model('test');
  57.  
  58. echo $this ->_models[0] ->Test();
  59. }
  60. }
  61.  
  62. $c = new controller();


Ten post edytował darko 21.02.2010, 00:28:37
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: 25.12.2025 - 20:34