Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzenie czy klasa implementuje interfejs
Forum PHP.pl > Forum > PHP > Object-oriented programming
strefa
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
-=Peter=-
Jeśli chodzi o pierwsze pytanie: http://pl2.php.net/manual/pl/reflectioncla...tinterfaces.php
seth-kk
class_implements
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.