2014-10-07 120 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'。你也可以在其他地方有他们的副本。 – 2014-10-07 19:19:54

+0

我使用的Symfony和作曲家,所以我没有做任何要求或包括。 – etiennenoel 2014-10-07 19:20:52

+0

您是否在Google上发生错误? – 2014-10-07 19:22:01

回答

2

您正在使用旧的,过时的和错误版本,可以通过使用该库来查看。

至少使用此软件包的版本2.0.0,而不是1.x版本。 (这意味着你必须使用开发版本,因为2.0或2.1版本都没有被标记)。这将引入该库的命名空间版本,因为它不会尝试初始化它自己的内部自动加载。

所有1.x版本都被打破了,因为实例化GetId3对象不止一次会尝试每次添加__autoload()函数 - 而第二次是一次太多。

+0

我正在使用dev-master。好吗 ? – etiennenoel 2014-10-07 20:42:00

+1

不,这很糟糕,因为它是1.x版本。我看到有一个2.0.0-beta1版本的标签,所以你可以使用'〜2.0 @ beta'作为版本要求。如果每次运行'composer update'时都会自动更新到任何更新的版本2.x。 – Sven 2014-10-07 20:43:50

+0

现在很好,谢谢你! – etiennenoel 2014-10-07 20:45:08

相关问题