Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Budowa frameworka - problem z instancją aplikacji
Forum PHP.pl > Forum > PHP > Object-oriented programming
Quider
Mam problem tego typu, że pisze frameworka i potrzebuje pomocy. Tzn rozwiązałem to trochę inaczej ale takie rozwiązanie jak wcześniej zrobiłem, tj. poprzez dziedziczenie się wszystkich niemalże bibliotek. Podpatrzyłem jednak jak wyglądają klasy w Kohanej. Tam żadna klasa w katalogu libraries nie dziedziczy po sobie na wzajem, tak jak to miało miejsce w moim frameworku.
Tam jest to rozwiązane tak, że index.php otwiera rdzeń itp. dopiero wtedy ładowane są kolejne klasy.

Na czym polega mój problem? Otóż jak zacząć inicjować kolejne klasy abym mógł bez problemu korzystać z $this->biblioteka->metoda (niekoniecznie akurat tak jak napisałem tutaj, ale głównie chodzi, żebym mógł z nich korzystać przez $this)

Najprościej mi to możecie wytłumaczyć na przykładzie kohanej lub własnym. Będę wdzięczny.

Pozdrawiam.

Ponawiam, może jakaś sugestia jak to rozwiązać czy coś?
zbig
Witam !

Nie bardzo wiem czy to masz na mysli , ale jakiegos pseudo loadera mozna zaimplementowac jakos tak
  1. <?
  2. class Application {
  3.    
  4.    private static $libraries = array();
  5.  
  6.    public function __get($name){
  7.        
  8.        if(!array_key_exists($name, self::$libraries)){
  9.            if(class_exists($name))
  10.                self::$libraries[$name] = new $name();
  11.        }
  12.        return self::$libraries[$name];
  13.    }
  14. }
  15. ?>


a w dalszej czesci aplikacji aplikacji odwolujesz sie do bibliotek

  1. <?
  2.      class mojaKlasa extends Application{
  3.    
  4.    public function blabla(){
  5.        $this->mojaKlasaDoZaladowania->iTuMetoda();
  6.    }
  7. }
  8. ?>


Nie jestem pewien czy wlasnie to masz na mysli

Pozdrawiam
wookieb
A ja nie wiem czy czasem nie zainteresuje cie singleton. http://pl.php.net/singleton
W momencie gdy chcesz skorzystać z egzemplarza klasy to wywolujesz statyczna metoda ktora ci ten egzemplarz zwraca. Nie ma potrzeby tworzyć w każdej klasie właściwości przechowujące wskażniki do obiektów bibliotek.
LBO
Cytat(wookieb @ 18.05.2009, 11:09:01 ) *
A ja nie wiem czy czasem nie zainteresuje cie singleton. http://pl.php.net/singleton
W momencie gdy chcesz skorzystać z egzemplarza klasy to wywolujesz statyczna metoda ktora ci ten egzemplarz zwraca. Nie ma potrzeby tworzyć w każdej klasie właściwości przechowujące wskażniki do obiektów bibliotek.


A ja nie wiem, co wszyscy z tym singletonem. Singleton jest do dupy, jeżeli kolega @Quider chce mieć ładowane te klasy dynamicznie na zasadzie helperów.
Quider
no nie do końca na zasadzie helperów. W gole dzieki za odpoweidzi:) pomogliscie poniekad.

Genrealnie to chodzi mi o taki myk jak jest w kohanie. Piszac swojego pierwszego frameworka ominalem tą kwestie dziedziczac kolejne kasy po sobie tak, ze w kontrolerach mozna bylo sie odwolywac do kolejnych bibliotek.

Chciałem jednak rozwiazać to tak jak jest w kohanie. Tam żadna klasa nie jest dziedziczona (mam na mysli biblioteki) a i tak można odwoływać się do nich operatorem wyłuskania. Najbliższa do doprowadzenia mnie do wyjscia z problemu byla odpowiedz zbig'a

No i w końcu nie chodzi mi o silgleton.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.