Разъяснение переопределения класса PHP - PullRequest
0 голосов
/ 19 октября 2010

У меня есть класс API LinkedIn, который я написал для PHP, который использует сторонний автономный класс OAuth, а не возможно установленное расширение PECL PHP OAuth. Я разработал его таким образом, чтобы многие пользователи не имели возможности / доступа для установки расширения PECL для совершения необходимых вызовов OAuth.

Итак, для установки PHP без установленного расширения PECL все работает отлично. Проблема на серверах, на которых установлено расширение PECL ... создание экземпляра класса OAuth стороннего производителя приводит к ошибкам переопределения, так как расширение PECL и класс стороннего производителя называют свои классы OAuth.

Было бы здорово иметь мой класс достаточно гибким для поддержки обеих ситуаций, но, конечно, два конфликтующих класса имеют разные имена методов и т. Д.

Я знаю, что простой ответ - сообщить людям, что моя библиотека предназначена ТОЛЬКО для тех ситуаций на сервере, где у вас не установлено расширение PECL, но мне интересно, есть ли другие решения.

Ответы [ 2 ]

1 голос
/ 19 октября 2010

Судя по всему, класс PECL и ваш не очень совместимы, поэтому очевидным решением будет переименовать ваш или переместить его в отдельное пространство имен (только PHP> = 5.3!).

Если предполагается, что они совместимы, вы также можете включить свой OAuth, только если класс PECL не определен:

if (!class_exists("OAuth"))
 require "/path/to/your/oauth.php";
0 голосов
/ 19 октября 2010

Не знаю, сработает ли это, но, может быть,

require_once("/path/to/your/oauth.php");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...