ez组件和AWS PHP SDK让ez组件吓坏了

ez组件和AWS PHP SDK让ez组件吓坏了

问题描述:

我尝试同时使用ez组件和AWS PHP SDK。ez组件和AWS PHP SDK让ez组件吓坏了

我有一个名为resize.php的文件,它只是使用ez Components ImageTransition工具来处理调整大小的图像。

我在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 fi没有包含AWS的文件,它工作正常。

予加载ezComponents这样的:

require 'ezc/Base/ezc_bootstrap.php'; 

它安装作为PEAR包。

任何想法的人?

+0

我从来没有使用过AWS PHP SDK,但是这种行为通常是由类加载器中的问题引起的。我想,AWS PHP SDK有它自己的类加载器,由于某种原因无法找到ezComponents类。 – Kel 2011-01-08 11:42:06

Apache Zeta/eZ组件的PHP类可以方便地从您的PHP脚本中使用。您不必为任何您使用的Apache Zeta组件类使用任何require或include语句,这是因为集成的自动载入机制可以在您实例化或使用它们时为您定位类。

有三种不同的获取自动加载机制会的方式:

  • 普通自动加载,如果你需要一个自定义的自动加载功能
  • 引导文件,如果你只使用Apache的泽塔自动装填
  • SPL自动加载如果您需要注册多个自动加载功能

这3种方式are fully documented here