Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dziedziczenie obiektów? Z klasy "matki"
zielu001
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 15.08.2009

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


Witam, tworzę zalążek aplikacji, która będzie obsługiwać inne aplikacje.

Stanąłem nad jednym zagadnieniem, możliwe że moje ubytki wiedzy wiążą się z małym niedoinformowaniem.

Otóż. Tworzę sobie loader całej aplikacji.

Plik index.php wygląda miej więcej tak że wywołuje klasę EngineInit, a w niej funkcję EngineStart.

W klasie EngineInit, w func EngineStart ładuję odpowiednie klasy, które własnie tworzę.
Dopowiednio jest to obsługa sesji, obsługa debugowania aplikacji, obsługa aplikacji, obsługa baz danch i inne

Problem polega na tym że chcę kożystać z tych obiektów tak:

  1. class EngineInit
  2. {
  3. public function EngineStart()
  4. {
  5. // [...]
  6. // Ładowanie obiektów najbardziej potrzebnych
  7. $conf = new ConfigurationInit;
  8. $db = new DataBaseLoader;
  9. $session = new SessionsLoader;
  10. // [...]
  11. }// end EngineStart
  12.  
  13. }
  14.  




Problem polega na tym że chcę użyć np. obiektu $conf w $db lub w $session i np. $db w $session..
Global nie działa (IMG:style_emoticons/default/ohno-smiley.gif)
Ma ktoś pomysł jak to rozwiązać?

Proszę o naprowadzenie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zielu001
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 15.08.2009

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


No tak, a dało by się zrobić coś w rodzaju globalnego ( wszystkiego ) obiektu który przechowywał by wszystkie moje obiekty?
Albo stworzyć klasę która poprzez funkcję wskazywała by na inną klasę czyli użycie np.
  1. $this->rejestr->pobierzKlasę("nazwa klasy")->funkcja_z_pobranej_klasy(params)


Wtedy DI był by w sumie idealny.

Ale jak zrobić w tym "pobierzKlasę("nazwa klasy")" aby nie tworzyło nowego obiektu tylko korzystało z już utworzonego ?
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(zielu001 @ 29.03.2012, 21:21:48 ) *
// EDIT:
Chyba się źle za to zabrałem..
Wymyślę coś innego. Ma ktoś jakiś pomysł? Jak napisać coś co będzie funkconalne ? (IMG:style_emoticons/default/biggrin.gif)

Dependency Injection dzisiaj jest wykorzystywane praktycznie wszędzie. Natomiast Twój pomysł nie jest zły i jest podobny np. do Zend-owskich Bootstraperów, które na podstawie danych konfiguracyjnych (zazwyczaj z pliku .ini) "przygotowują" odpowiednie klasy do współdziałania z całą aplikacją.

Cytat(zielu001 @ 29.03.2012, 21:56:19 ) *
No tak, a dało by się zrobić coś w rodzaju globalnego ( wszystkiego ) obiektu który przechowywał by wszystkie moje obiekty?
Albo stworzyć klasę która poprzez funkcję wskazywała by na inną klasę czyli użycie np.
  1. $this->rejestr->pobierzKlasę("nazwa klasy")->funkcja_z_pobranej_klasy(params)


Wtedy DI był by w sumie idealny.

Ale jak zrobić w tym "pobierzKlasę("nazwa klasy")" aby nie tworzyło nowego obiektu tylko korzystało z już utworzonego ?

To zależy od założeń Twojego projektu. Poczytaj o wzorcu FrontController, który poniekąd temu właśnie służy.

Ten post edytował mortus 29.03.2012, 21:14:07
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 19:34