Как использовать одноименный класс в PHP без пространства имен? - PullRequest
3 голосов
/ 26 октября 2010

У меня есть проблема, когда у меня есть два класса библиотек сторонних производителей, которые я должен расширять и использовать вместе. Но оба имеют одинаковое соглашение об именах, и два имени класса заканчиваются тем же именем.

Поскольку я не могу расширять два класса, я не знаю, как их исправить, как создать обертку для одного. Я не могу использовать пространства имен PHP, так как версия PHP просто 5.2.10, а не 5.3.

Какие варианты у меня есть?

Ответы [ 3 ]

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

Это именно та проблема, для решения которой предназначены пространства имен PHP. Нет чистого способа сделать это до 5.3. Лучшее, что вы можете сделать, это переименовать одно или оба и просмотреть библиотеки, исправляющие вызовы. Это боль, но, поскольку они являются отдельными библиотеками, это не должно быть слишком сложным.

Мое другое предложение - убедиться, что установка 5.3 действительно невозможна. На сегодняшний день это лучшее решение вашей проблемы.

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

Я думаю, вы можете реализовать интерфейс, подобный rpc, для одного класса. Для других вы можете расширить и использовать. http://en.wikipedia.org/wiki/Remote_procedure_call

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

Проблема в том, что у вас нет пространств имен.

Единственный вариант, который у вас есть, - это пройти код одного или другого и изменить все имена классов. Возможно, добавьте к ним префикс, который прояснит, какой из них какой.

...