![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zastanawiam sie czy mozna rozszerzyc classe o klase ktora znajduje sie w innym katalogu np podrzednym zazaczam ze stosuja funcje function __autoload($className) w ktorej sa warunki jesli klasa znajduje sie w katalogu a to zaladuj jesli b to zaladuj z katalogu b
konkretnie chce rozszerzyc clsse a o b z tym ze classa a znajduje sie w katalogu a, klasa b w podkatalogu b w katalogu a Prosze o jakies sugestie Ten post edytował joytec 19.03.2010, 09:26:08 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1) Co to jest classa?
2) Nie za bardzo wiem w czym problem. Napisz na tyle normalny autoloader by sobie poradził z wczytaniem klas z różnych źródeł. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
klasa w php
class a{ } to jest klasa i wlasnie o to chodzi zeby nie zmieniac takiej klasy w wileu zrodlach tylko zeby ja rozszerzyc |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Pytanie "Co to jest classa?" było ironią.
Tak jak napisał poprzednik: odpowiedni autoloader (np. w stylu PEAR czyli zmiana _ na / w nazwie klasy) albo po prostu require_once w pliku z definicją klasy rozszerzającej. Nie bardzo wiem z czym masz tak naprawdę problem. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
to ja wiem ze to ironia czepianie sie szczegolow wiec ironia jest napisanie co to klasa
o t chodzi ze uzywam mvc i jeden skrypt pracuje na wielu domenach, nie ktore jego czesci 'klasy' sie roznia wiec w obecnym rozwiazaniu ssa w podkatalogach, ale jak przychodzi jakas zmiana to mam tych katalogow wiele do zmiany wiec lepszym rozwiazaniem bedzie rozszerzenie bazowaj clasy i tam dopisywanie zmian. W obecnym rozwiazaniu klasy bardziej szczegolowe tkwia w podkatalogach wiec stad moje pytanie czy mozna rozszerzyc klase w znajdujaca sie podkatalogu do klasy bazowej lezacej w katalogu wyzej (../) Ten post edytował joytec 19.03.2010, 10:13:36 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat klasa w php ... to może dosłownie: piszemy klasa, klasę, klasy, a nie classa, classę czy classa.class a{ } to jest klasa Cytat i wlasnie o to chodzi zeby nie zmieniac takiej klasy w wileu zrodlach tylko zeby ja rozszerzyc No to co za problem
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
ja nie wiem czy czytales to co napisalem...
chce rozszerzyc klase a o b tylko ze b znajduje sie w katalogu nadrzednym (../) czy to mozliwe w ogole poniewaz chcialbym zachowac rozmieszczenie w katalogach bo to poprostu przejzyste Ten post edytował joytec 19.03.2010, 10:17:57 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
albo jeszcze inaczej jesli rozszerzam klase a do b
class a extends b to czy klasa b rowniez przechodzi przez autoloader tzn czy moge ja umiescic w innym zrodle
ja uzywam atoloadera |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Ciężko to sprawdzić samodzielnie?
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Jak ustawisz include path na katalogi w ktorych masz klasy to autoloader dolaczy je bez problemu
-------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Dobra to od początku.
Opowiem Ci o moim nawyku a ty sprawdzisz czy jest dobry czy nie. Mam 2 katalogi - application - klasy specyfikowane dla aplikacji - classes - klasy dla kazdej aplikacji, silnik wiadomo Zakladam include_page na katalog application i classes. Wszystkie klasy główne trzymam w tych folderach. Klasy dodatkowe typu validatory, filtry obrazów, itd sa w podkatalogach ktora laduja inne klasy tylko wtedy kiedy potrzeba. __autoload swietnie sobie radzie z ladowaniem klas ktore znajduje sie na pierwszym poziomu katalogów application i classes, ponieważ są to najpotrzebniejsze klasy. W twoim przypadku jeżeli nie chcesz miec zadnych require_onca powinienes zalozyc include_path na wszystkie katalogi ktore potrzebujesz, ale wiaze sie to z dwoma problemami. __autoload dziala wolniej bo musi te wszystkie katalogi przejrzec, musisz uwazac na nazwy plikow w "includowanych" katalogach, bo możesz otrzymać niespodziewane wyniki. -------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 24.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje za profi odpowiedz
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
To ja też dorzucę trochę swoich mOndrości. ;p
Chcesz dobry autoloader? Zainteresuj się przestrzeniami nazw w PHP 5.3. Możesz podejrzeć kod autoloadera w symfony 2.0, który z tego korzysta i jest właściwie największą siłą nowej wersji tego frameworka. Albo zresztą żebyś nie musiał grzebać. ;p - Prostszego i wydajniejszego autoloadera to jeszcze nie widziałem... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:00 |