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





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

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


No przecież opisałem Ci dwa mechanizmy, przy czym jeśli chcesz korzystać z obiektów utworzonych w klasie "głównej" to nie masz wyboru i pozostaje Ci jedynie Dependency Injection:
  1. class EngineInit {
  2. private $_configuration = null;
  3. private $_database = null;
  4. private $_session = null;
  5. public function EngineStart() {
  6. $this->_configuration = new ConfigurationInit;
  7. $this->_database = new DataBaseLoader;
  8. $this->_session = new SessionsLoader($this->_database);
  9. }
  10. }
  11. class SessionLoader {
  12. private $_database = null;
  13. public function __construct($database) {
  14. $this->_database = $database;
  15. }
  16. function NpSessionClearCzyCos__() {
  17. $this->_database->query("|Zapytanie SQL|");
  18. }
  19. }
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: 9.10.2025 - 10:22