![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
mam taką klasę główną:
nie wiem jak rozwiązać sprawę i autoładowaniem klas. Załóżmy, że pobieram klasę $core->loadClass('template', 1); i już pod zmienną $template mam uchwyt do klasy template ($template= new template;. Próbowałem walczyć z eval, ale coś nie działa. Bardzo proszę o pomoc, o już nie mogę wytrzymać. Piszę sobie takiego mini frameworka dla własnych potrzeb i kurde siedzę w tym bagnie już jakiś czas i nic mi do głowy nie przychodzi. Any ideas? ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chyba mi się nudzi :]
Twoje rozwiązanie ze zmienną nie przejdzie, ponieważ eval jest wykonywany w metodzie, a więc zmienne w eval na których operujesz są traktowane jako lokalne zmienne metody. Jeżeli bardzo chcesz to rozwiązać na swój sposób (niestety nieciekawy), to zrób to tak:
-------------------- serwiswww.pl
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
W tym wypadku moim zdaniem GLOBALS nei jest aż takie złe, ale pokusiłbym się o
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak czy inaczej istnieje tu duże ryzyko, że jeden obiekt tej samej klasy nadpisze mu drugi jeśli w odpowiedniej porze nie zrobi sobie dodatkowej referencji do danej instancji.
-------------------- serwiswww.pl
|
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
~Armageddon ja mam pytanie. Po co automatycznie tworzysz instancję każdej napotkanej klasy?
Pozwolę sobie odpowiedzieć: Bo nie mogłeś wymyśleć nic bardziej głupiego? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
to w jaki sposób działają frameworki CI albo Kohana?
Mi chodzi o to, że na początku pobierane są wszystkie klasy i autoodpalane (ło kurde - trochę niewydajne :/). Później w zależności od podanej strony pobierany jest dany plik inc.php. Chyba, że lepszym wyjściem byłoby podzielenie na kontrolery - pobierane w zależności od przekazanej zmiennej w index.php/zmienna, metody - operacje na bazie danych, klasy generalne - najważniejsze klasy, serce frameworka i helpery - klasy dodatkowe dodawane w konstruktorach kontrolerów w zależności od potrzeb... I może lepiej przejść na PHP5 ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Mi chodzi o to, że na początku pobierane są wszystkie klasy i autoodpalane (ło kurde - trochę niewydajne :/). Bzdura! Zawsze ładowane są tylko te pliki, które są aktualnie potrzebne. PS: wczytywanie klas nie jest równoznaczne z tworzeniem obiektów danej klasy Ten post edytował phpion 17.02.2009, 22:14:23 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 206 Pomógł: 18 Dołączył: 6.03.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Boże, człowieku jeszcze na dodatek w PHP4. Proszę, to aż w oczy boli jakie ty bzdury piszesz... i jeszcze sie zastanawiasz nad PHP5 "może". Zazwyczaj nie lubię niekonstruktywnej krytyki, ale ten temat jest tak beznadziejnie bezsensowny...
-------------------- Wrzasq.pl
Tworzenie stron i aplikacji internetowych. Chillout Development - tworzenie stron i aplikacji internetowych. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Jak wyzej.
"Use php5, fool!" - masz __autoload() i normalna (nie-chorą) obiektowke. I nie tworz obiektow tylko temu ze ich plik zaladowales. Potrzebujesz obiekt to go tworzysz, a nie 1000 globalnych obiektow, nie wiadomo przez co i kiedy uzywanych. A co jak bedziesz potrzebowal 2 obiekty tej samej klasy? Skoro juz 2 to drugi bedziesz i tak musial uzyc operatora new, to czemu od poczatku go tak nie wykorzystac? -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, stworzyłem sobie mini-system MVC na PHP5 i przyznam, że dotychczasowe problemy minęły
![]() Dzięki wszystkim... ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 10:02 |