Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzenie czy klasa implementuje interfejs
strefa
post 19.10.2009, 17:55:21
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.10.2007

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


Witam.

Poszukuje sposobu na sprawdzenie czy dana klasa jest implementacją podanego interfejsu. Sytuacja wygląda tak że dostanę dużo plików .php od osób mi pomagających, każdy z tych plików będzie zawierał klasę "HTML", jako że uzgodniliśmy wspólne API dla tych klas to stworzony został interfejs który teoretycznie przez wszystkie klasy "HTML" powinien być implementowany... ale wiadomo jak to bywa smile.gif

W zależności od potrzeb ładuję jeden z tych plików i teraz zanim użyję tej klasy to przydałoby się sprawdzić czy dana klasa faktycznie implementuje interfejs. Jedyne co wymyśliłem to stworzyć instancję klasy "HTML" i sprawdzić czy jest instancją interfejsu
  1. $test = new HTML();
  2. if( $test instanceof HTMLInterf )
  3. {
  4. // klasa HTML implementuje HTMLInterf
  5. }

Jednak to nie do końca rozwiązanie o które mi chodzi, ponieważ klasa "HTML" zawiera tylko i wyłącznie metody statyczne... więc tworzenie obiektu tylko po to żeby sprawdzić i go usunąć nieco mija się z celem.

PS. Czy jest możliwość utworzenia obiektu klasy z łańcucha znaków zawierającego nazwę klasy?? np. przekażę do pliku "index.php?klasa=cFoo" i chciałbym utworzyć klasę cFoo. Pomijając switch/case czy jakieś if'y smile.gif
Go to the top of the page
+Quote Post
-=Peter=-
post 19.10.2009, 18:18:35
Post #2





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


Jeśli chodzi o pierwsze pytanie: http://pl2.php.net/manual/pl/reflectioncla...tinterfaces.php


--------------------
Go to the top of the page
+Quote Post
seth-kk
post 19.10.2009, 18:22:28
Post #3





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


class_implements


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 01:56