2012-11-09 3 views
0

현재 Guzzle (부트 스트랩 파일의 명시 적 "require_once"로 [.phar]로로드 됨)을 사용하는 프로젝트가 있습니다.기존 클래스를 패키징하는 PHAR 포함

Amazon에서 AWSSDKforPHP을 추가하려고 시도해 왔기 때문에 Amazon S3 로의 업로드를 쉽게 처리 할 수 ​​있습니다. I 패키지 (또한 .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가 왜 충돌하는지 알 수 없습니다. 좋은 소식은 PHP 2 용 AWS SDK에서 제공하는 phar에도 Guzzle 라이브러리가 포함되어 있으므로 애플리케이션에 aws.phar 만 포함하면됩니다.

+0

흠. 어쨌든 [S3 서비스] (https://github.com/tpyo/amazon-s3-php-class)에 대해 다른 클래스를 사용하여 끝났지 만,이 질문에 대한 답변을 얻는 것이 좋을 것입니다. : / – Rican7