2011-01-08 3 views
0

ez 구성 요소와 AWS PHP SDK를 동시에 사용하려고합니다.ez 구성 요소와 AWS PHP SDK로 인해 구성 요소가 작동하지 않습니다.

ez Components ImageTransition 도구를 사용하여 이미지 크기 조정을 처리하는 resize.php 파일이 있습니다.

Amazon AWS SQS에서 크기 조정을 위해 이미지를 큐에 넣습니다. AWS PHP SDK와 ez Components를 같은 파일에로드하면 PHP는 ez Components 클래스를 찾지 못한다고 항상 불평합니다.

amazonSQS.php :

코드는 다음과 같이 보이는

require 'modules/resize.php'; 
require 'modules/aws/sdk.class.php'; 

$sqs = new AmazonSQS(); 
$response = $sqs->send_message($queue_url, $message); 

resize.php :

function resize_image($filename) { 

$settings = new ezcImageConverterSettings(
    array(
     //new ezcImageHandlerSettings('GD',   'ezcImageGdHandler'), 
     new ezcImageHandlerSettings('ImageMagick', 'ezcImageImagemagickHandler'), 
    ) 
); 

오류 메시지 :

Fatal error: Class 'ezcImageConverterSettings' not found in /home/www.com/public_html/modules/resize.php on line 10 

내가 크기를 호출하는 경우 다른 PHP에서 가져온 .php AW는 AWS를 포함하고 있지 않습니다.

나는이 같은 ezComponents를로드 : 그것은 PEAR 패키지로 설치

require 'ezc/Base/ezc_bootstrap.php'; 

.

다른 사람이 있습니까?

+0

필자는 AWS PHP SDK를 사용한 적이 없지만 일반적으로 클래스 로더 문제로 인해 이러한 문제가 발생합니다. AWS PHP SDK에는 자체 클래스 로더가있어 어떤 이유로 든 ezComponents 클래스를 찾을 수 없습니다. – Kel

+0

AWS가 ezComponents의 오토로더를 덮어 쓰는 것처럼 보입니다. ezComponents에 특정 클래스를로드하고 오토로더를 무시할 수있는 아이디어가 있습니까? – David

답변

0

Apache Zeta/eZ Components의 PHP 클래스는 PHP 스크립트에서 편리하게 사용할 수 있습니다. 사용하는 Apache Zeta Components 클래스에 대해 require 또는 include 문을 사용할 필요가 없습니다. 이는 인스턴스화하거나 달리 사용할 때 클래스를 찾을 수있는 통합 된 자동로드 메커니즘 때문입니다.

  • 일반 자동로드, 당신은
  • 부트 스트랩 파일을 사용자 지정 자동로드 기능이 필요한 경우, 당신은 단지 아파치 제타 자동 로딩
  • SPL 자동로드를 사용하는 경우 :

    가는 자동로드 메커니즘을 얻는 세 가지 방법이 있습니다 , 당신은 몇 가지 자동로드 기능

이 3 가지 방법 are fully documented here

,536를 등록해야하는 경우
관련 문제