2015-07-20 4 views
0

Я работаю с приложением в CakePHP 2.5.4 и пытаюсь интегрировать стороннюю библиотеку для работы с видеосервисом. Библиотека находится здесь: https://github.com/vzaar/vzaar-api-phpCakePHP - Не удается переопределить класс, конфликтующий с сторонней библиотекой

Я скопировал выше библиотеку в приложение/Vendor/vzaar/

В одном из моих приложений контроллеры, приложения/Controller/VideosController.php, я в том числе его с помощью:

require_once APP . DS . 'Vendor' . DS . 'vzaar' . DS . 'Vzaar.php';

Всякий раз, когда я запускаю любой из его функций я получаю PHP Фатальная ошибка:
ошибка: Невозможно переопределить класс пользователя

В библиотеке есть такие классы, как User.php и Video.php. Мое приложение также имеет классы с этими именами.

Так можно ли переименовать их в библиотеку? Или я импортировал/использовал это неправильно? Переименование вещей кажется очень запутанным способом, хотя я понимаю, что одно и то же имя класса нельзя использовать в нескольких местах.

Я искал здесь и Google для решения, но ничего не нашел. Я бы предположил, что это довольно распространенная проблема, поскольку, вероятно, любые классы ООП-PHP от третьих сторон могут использовать те же имена, что и имена классов в приложении Cake?

Любая помощь будет оценена по достоинству.

ответ

1

So is the solution to rename them in the library?

Да. Я бы раскошелил библиотеку на Github и создал версию с именами. Я удивлен, что они не использовали пространства имен. Если это было преднамеренно, то они должны были префикс классов с чем-то вроде Vzaar_, что было обычной практикой до того, как пространства имен стали обычным явлением. Суть заключается в том, что продавец сделал не очень умное решение, особенно потому, что «Пользователь» и «Видео» очень общих имен. Добавьте пространства имен, сделайте запрос на перенос, возможно, они его примут.

Смежные вопросы