2014-10-07 3 views
1

Я использую Symfony и в настоящее время пытается использовать getID3: https://github.com/phansys/GetId3Ошибка: Невозможно переопределить __autoload()

Я установил его с помощью композитора, как указано в ссылке, указанной. Установка прошла успешно.

В файле, где я хочу, чтобы использовать его, я следующее:

<?php 
    use GetId3_GetId3 as GetId3; 

    ... 

    $this->getId3 = new GetId3; 


    $fileInfo = $this->getId3->analyze($media->getBinaryContent()->getRealPath()); 

Я получаю ошибку заключается в следующем:

FatalErrorException: Error: Cannot redeclare __autoload() (previously declared in /Users/etienne/Developpement/Ima-Tech/Clients/osc/vendor/phansys/getid3/GetId3/GetId3.php:69) in /Users/etienne/Developpement/Ima-Tech/Clients/osc/vendor/phansys/getid3/GetId3/GetId3.php line 69 

И стек ошибка:

in /Users/etienne/Developpement/Ima-Tech/Clients/osc/vendor/phansys/getid3/GetId3/GetId3.php line 69 
at ErrorHandler->handleFatalError() in /Users/etienne/Developpement/Ima-Tech/Clients/osc/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php line 219 
at ErrorHandler->handleFatal() in /Users/etienne/Developpement/Ima-Tech/Clients/osc/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php line 0 
at GetId3_GetId3->__construct() in /Users/etienne/Developpement/Ima-Tech/Clients/osc/vendor/phansys/getid3/GetId3/Module/AudioVideo/Quicktime.php line 94 
at GetId3_Module_AudioVideo_Quicktime->Analyze() in /Users/etienne/Developpement/Ima-Tech/Clients/osc/vendor/phansys/getid3/GetId3/GetId3.php line 471 
at GetId3_GetId3->analyze() in /Users/etienne/Developpement/Ima-Tech/Clients/osc/src/Application/Sonata/MediaBundle/Provider/VideoProvider.php line 70 
+0

Попробуйте выполнить 'require_once' или' include_once', посмотрите, поможет ли это, если вы уже выполняете 'require' и/или' include'. У вас могут быть и их копии. –

+0

Я использую Symfony и композитор, поэтому я не требую или не включаю. – etiennenoel

+0

У вас ошибка Google? –

ответ

2

Вы используете старую, устаревшую и ошибочную версию, что видно из вашего использования этой библиотеки.

Используйте как минимум версию 2.0.0 этого пакета, а не версии 1.x. (Это означает, что вам нужно использовать версию для разработки, поскольку не были отмечены ни версии 2.0, ни 2.1). Это представит версию пространства имен этой библиотеки, которая будет работать, потому что она не пытается инициализировать собственную внутреннюю автозагрузку.

Все версии 1.x просто сломаны, потому что экземпляры объектов GetId3 более одного раза будут пытаться добавить функцию __autoload() каждый раз - и второй раз слишком много.

+0

Я использую dev-master. Это хорошо ? – etiennenoel

+1

Нет, это плохо, потому что это версия 1.x. Я вижу, что есть тег версии 2.0.0-beta1, поэтому вы можете использовать '~ 2.0 @ beta' в качестве требования к версии. Это будет автоматически обновляться до любой версии 2.x, если она станет доступной всякий раз, когда вы запускаете 'composer update'. – Sven

+0

Отлично, теперь он работает спасибо! – etiennenoel

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