Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Budowa frameworka - problem z instancją aplikacji
Quider
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 9
Dołączył: 6.03.2009
Skąd: Katowice

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


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ś?

Ten post edytował Quider 16.05.2009, 11:30:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
zbig
post
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

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


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
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.

Ten post edytował wookieb 18.05.2009, 10:09:10
Go to the top of the page
+Quote Post
LBO
post
Post #4





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


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.
Go to the top of the page
+Quote Post
Quider
post
Post #5





Grupa: Zarejestrowani
Postów: 91
Pomógł: 9
Dołączył: 6.03.2009
Skąd: Katowice

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


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.
Go to the top of the page
+Quote Post

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: 23.12.2025 - 21:09