我正在使用Symfony,目前正在尝试使用getId3:https://github.com/phansys/GetId3
我是通过提供的链接中提到的composer安装的。安装成功。
在我想要使用它的文件中,我有以下内容:
<?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 :(得分:2)
您使用的是旧的,过时的和有缺陷的版本,您可以通过使用该库来查看。
至少使用此软件包的2.0.0版本,而不是1.x版本。 (这意味着您必须使用开发版本,因为版本2.0或2.1都没有被标记)。这将引入该库的命名空间版本,因为它不会尝试初始化它自己的内部自动加载。
所有1.x版本都被破坏了,因为多次实例化GetId3对象会尝试每次都添加__autoload()
函数 - 而第二次是一次太多。