tags:

views:

25

answers:

2

I have a LinkedIn API class that I've written for PHP that makes use of a third-party stand-alone OAuth class, not the possibly installed PECL PHP OAuth extension. I've designed it this way to allow the many users don't have the ability/access to install the PECL extension to make the needed OAuth calls.

So, for PHP installs with no PECL extension installed, all works perfectly. The issue is on server's that DO have the PECL extension installed... instantiating the third-party OAuth class gives re-definition errors, as both the PECL extension and the third-party class have called their classes 'OAuth'.

It would be great to have my class flexible enough to support both situations, but of course the two conflicting classes have different method names, etc.

I know the simple answer is to advise people that my library is ONLY for those situations on the server where you don't have the PECL extension installed, but I am wondering if there are any other suggestions from the SO crowd.

Thanks!

+1  A: 

From the sound of it, the PECL class and yours are not really compatible, so the obvious solution would be to rename yours or move it into a separate Namespace (PHP >= 5.3 only!).

If they are supposed to be compatible, you could also include your OAuth include only if the PECL class is not defined:

if (!class_exists("OAuth"))
 require "/path/to/your/oauth.php";
Pekka
Right, I've made my class compatible with the third-party class, not the PECL extension. Will look into Namespace, but the >= 5.3 means it's probably not an option at this time. Thanks!
pmmenneg
A: 

Don't know if this would work but maybe

require_once("/path/to/your/oauth.php");
Phill Pafford