2011-01-08 51 views
0

我嘗試同時使用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

回答

0

Apache Zeta/eZ組件的PHP類可以方便地從您的PHP腳本中使用。您不必爲任何您使用的Apache Zeta組件類使用任何require或include語句,這是因爲集成的自動載入機制可以在您實例化或使用它們時爲您定位類。

有三種不同的獲取自動加載機制會的方式:

  • 普通自動加載,如果你需要一個自定義的自動加載功能
  • 引導文件,如果你只使用Apache的澤塔自動裝填
  • SPL自動加載如果您需要註冊多個自動加載功能

這3種方式are fully documented here