2012-11-09 22 views
0

我有一個項目目前使用Guzzle(它通過引導文件中的顯式「require_once」加載[.phar])。包含一個打包現有類的PHAR

我一直在嘗試添加亞馬遜的AWSSDKforPHP,以便我可以輕鬆處理上傳到Amazon S3的操作。不幸的是,當我嘗試包括包(也打包爲.phar文件),PHP拋出一個討厭的錯誤:

PHP Fatal error: Cannot redeclare class Symfony\\Component\\ClassLoader\\UniversalClassLoader in phar:///usr/share/php/AWSSDKforPHP/aws.phar/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php on line 62 

我已經關閉(完全)APC,因爲我已經看到了APC導致一些需要/包括之前的頭痛。

我懷疑PHP會有這樣一個尷尬的限制,只能包含一個依賴項的包一次。 ...但我可能是錯的。

回答

1

查看這兩個庫的phar存根,我不確定爲什麼它在UniversalClassLoader的require_once上發生衝突。好消息是AWS SDK for PHP 2提供的phar還包含Guzzle庫,所以您只需要在應用程序中包含aws.phar。

+0

嗯。無論如何,我最終還是爲[S3服務](https://github.com/tpyo/amazon-s3-php-class)使用了不同的類,但在這個問題上得到答案肯定很好。 :/ – Rican7