Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mapper? dynamiczny obiekt w klasie
drbane
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 9.10.2006

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


Witam, nie mam zielonego pojęcia jak zrobić coś takiego:

  1. <?php
  2. $this->loadModel('nazwa_model');
  3. $this->nazwa_model->funkcja();
  4. ?>


A konkretniej chodzi mi o to żeby, w danej klasie utworzyć (dynamicznie) obiekt i móc odwołać się do jego właściwości/metod, właśnie w taki sposób jaki przedstawiłem w przykładzie.

Wiem że chodzi o tzw. mapper (przynajmniej tak mi się wydaje), ale nie wiem jak to ugryźć.


--------------------
only Google!
Go to the top of the page
+Quote Post
Ziels
post
Post #2





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

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


  1. <?php
  2. class someclass{
  3.  public $maska;
  4.  
  5.  public function loadModel($nazwa){
  6. $this -> maska = new $nazwa;
  7. return true; 
  8.  }
  9. }
  10. ?>


W czym problem? winksmiley.jpg
Go to the top of the page
+Quote Post
drbane
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 9.10.2006

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


W tym że odwołuję się do tego w ten sposób:

  1. <?php
  2. $ob->maska->model->metoda();
  3. ?>


a chodzi mi o:

  1. <?php
  2. $ob->model->metoda();
  3. ?>


winksmiley.jpg


--------------------
only Google!
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


__get()

$this->loadModel( 'costam');
wczytujesz klase, tworzysz instancje i zapisujesz w jakiejsc tablicy

$this->costam

odczytywany __get()em zwraca ci ten obiekt modelu

reszta to juz proscizna


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
drbane
post
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 9.10.2006

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


Może jakiś przykład? O ile to nie problem.


--------------------
only Google!
Go to the top of the page
+Quote Post
pbnan
post
Post #6





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 27.03.2007
Skąd: Osiek almost City ;-D

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


  1. <?php
  2. class bla {
  3. private $_model, $_model_name;
  4. function load_model($a_name) {
  5. //ladowanie modelu...
  6. $this->_model = $model; //$model to zaladowany juz model
  7. $this->_model_name = $a_name;
  8. }
  9. function __get($a_name) {
  10. if ($a_name == $this->_model_name) { return $this->_model; }
  11. }
  12. }
  13. ?>

Może coś takiego?


--------------------
"Hmmm, na wakacje trzeba będzie zacząć zarabiać, co nie? ;-] GTA IV się coraz bardziej zbliża... ;-]"
To się nazywa częsty update sygnaturki.
;-)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


No a co w sytuacji kiedy chcemy posiadac jednoczesnie kilka modeli zaladowanych?


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
pbnan
post
Post #8





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 27.03.2007
Skąd: Osiek almost City ;-D

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


To robisz tablicę, co za problem? smile.gif
Oczywiście tablicę modeli + nazw (dla mojego przykładu) lub coś innego, jeśli to ktoś inaczej rozwiązał smile.gif

Ten post edytował pbnan 31.03.2007, 15:26:47


--------------------
"Hmmm, na wakacje trzeba będzie zacząć zarabiać, co nie? ;-] GTA IV się coraz bardziej zbliża... ;-]"
To się nazywa częsty update sygnaturki.
;-)
Go to the top of the page
+Quote Post
drbane
post
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 9.10.2006

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


O to właśnie chodziło - niby proste, ale trochę miałem z tym problem. Dzięki za pomoc, pozdrawiam.


--------------------
only Google!
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: 19.08.2025 - 14:20