![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 61 Pomógł: 1 Dołączył: 21.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chcę zrobić swoją wersję klasy Memcache, która będzie miała te same metody i pola co klasa wbudowana w PHP i żeby moja klasa zastępowała oryginalną klasę Memcache. Dodatkowym utrudnieniem jest to, że klasa Memcache nie zawsze jest dostarczana wraz z PHP, a ja chcę żeby każdy mógł wywołać moją klasę tak:
Mógłbym nazwać klasę MyMemcache i potem napisać:
albo użyć namespace, ale to dopiero od PHP 5.3, a ja chcę żeby to działało w PHP 5.2. -------------------- Juvenia Kraków Rugby Klub
Pobierz Google Chrome! |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Z tego, co wiem, to nie ma możliwości przeciążania w PHP istniejących klas.
Jedyne, co pozostaje, to rozszerzać albo aliasować i instancjować Twoją rozszerzającą klasę, a nie podstawową. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 15.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Skoro ktoś chciałby wołać Twoją klasę to możesz nazwać ją po prostu inaczej. Z drugiej strony jeśli by miała być zamiennikiem dla nie istniejącej wbudowanej klasy, to mozesz łatwo zaincludować ją wpierw sprawdzając przez class_exists(..) czy taka juz istnieje, a następnie robiąc alias na Twoją nazwę (lub nie robiąc wcale, jeśli ma byc tylko zamiennikiem).
Ten post edytował sarxos 15.06.2011, 14:02:25 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 61 Pomógł: 1 Dołączył: 21.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
To jest właśnie to, co zaproponowałem na początku. A żeby było kompatybilne z PHP<5.3.0, można zrobić tak:
-------------------- Juvenia Kraków Rugby Klub
Pobierz Google Chrome! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 11:52 |