PHP Вызовите другую библиотеку в другом месте приложения - PullRequest
0 голосов
/ 01 сентября 2009

В моем приложении в какой-то момент я должен вызвать библиотеку Propel версии 1.2 (которая находится в каталоге A), а в другой момент мне нужно вызвать библиотеку Propel версии 1.3 (которая находится в каталоге B).

Как это сделать?

Редактировать: мне это нужно, потому что компонент, который я использую, использует и более старую версию библиотеки, которую я использую.

1 Ответ

1 голос
/ 01 сентября 2009

Это невозможно, поскольку обе версии Propel имеют классы с одинаковыми именами (например, «Propel»). PHP не позволяет переопределять (или отменять) классы.

Лучшее, что можно сделать, - это поощрять создателей компонента, использующего Propel 1.2, для обновления. Кроме того, вы можете попробовать сами, поскольку интерфейс Propel практически не изменился.

Редактировать: Есть, конечно, обременительные обходные пути: один превращает компонент, который зависит от Propel 1.2, в какой-то отдельный сервис, который теоретически может быть вызван отдельно из Интернета. Затем используйте virtual () (если вы используете Apache), чтобы сделать отдельный запрос к этому компоненту. Это запустит новый сеанс PHP в новом потоке / процессе Apache, поэтому нет конфликтов имен. Если вам нужно запросить компонент только несколько раз за запрос страницы, возможно, вам понадобятся дополнительные затраты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...