ez组件和AWS PHP SDK使ez组件变得怪异

时间:2011-01-08 11:29:56

标签: php amazon zeta-components

我尝试同时使用ez Components和AWS PHP SDK。

我有一个名为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

如果我从另一个没有包含AWS的PHP文件中调用resize.php,它可以正常工作。

我像这样加载ezComponents:

require 'ezc/Base/ezc_bootstrap.php';

它作为PEAR包安装。

有人在想吗?

1 个答案:

答案 0 :(得分:0)

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

有三种不同的方法可以实现自动加载机制:

  • 普通自动加载,如果您需要自定义自动加载功能
  • Bootstrap文件,如果您只使用Apache Zeta自动加载
  • SPL自动加载,如果您需要注册多个自动加载功能

这三种方式are fully documented here