Ошибка: невозможно повторно объявить __autoload ()

Я использую Symfony и в настоящее время пытаюсь использовать getId3: https://github.com/phansys/GetId3

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

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

<?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

1

Решение

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

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

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]