Piszę wtyczkę do popularnego CMS'a i korzystam w niej z kodu biblioteki SOAP.
Jednak pewnego razu natrafiłem na taką konfigurację tego CMSa że była już tam inna wtyczka korzystająca z tej samej biblioteki.
Co się stało?
Otóż CMS najpierw wczytał moją wtyczkę i wszystkie klasy/metody/funkcje z biblioteki SOAP którą włączam do wtyczki przez require_once(); a potem przechodząc przez kod pozostałych wtyczek natrafił na następny includ tej samej biblioteki (już w innej wtyczce) i dostałem komunikat:
Fatal error: Cannot redeclare FUNKCJA() (previously declared in /MOJA_WTYCZKA.php:906) in /INNA_WTYCZKA.php on line 924
Jak mam zmodyfikować kod mojej wtyczki żeby nie gryzła się z innymi wtyczkami używającymi tej biblioteki?
Myślałem o przestrzeniach nazw ale będą one dopiero od php 5.3 a jeśli moja wtyczka ma być kiedyś popularna powinna działać też ze starszymi wersjami php.
Ręczna zmiana nazw klas i metod też raczej nie wchodzi w grę bo biblioteki SOAP ma ok. 9000 linii kodu więc trudno byłoby wszystko przeedywać.
z góry dziękuję za pomoc.