2011-01-08 8 views
0

ezコンポーネントとAWS PHP SDKを同時に使用しようとしています。ezコンポーネントとAWS PHP SDKによりコンポーネントがフリークアウトされる

私はresize.phpというファイルを持っています。これはezコンポーネントのImageTransitionツールを使用して画像のサイズ変更を処理するだけです。

イメージをAmazon AWS SQSでキューに入れます。 AWS PHP SDKとezコンポーネントを同じファイルに読み込むと、PHPはezコンポーネントのクラスが見つからないことについて常に不満を持ちます。私はサイズを変更呼び出す場合

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

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'), 
    ) 
); 

エラーメッセージ

コードは次のようになりますPHPファイルからの.php AWは含まれていませんが、それは正常に動作します。

は、私はこのような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コンポーネントのPHPクラスは、PHPスクリプトから便利に使用できます。使用するApache Zetaコンポーネント・クラスのいずれに対しても、requireまたはincludeステートメントを使用する必要はありません。これは、クラスをインスタンス化したり、別の方法で使用するときに、そのクラスを見つけることができる統合された自動ロード・メカニズムです。

  • 通常のautoload、あなたが
  • ブートストラップファイルのカスタム自動ロード機能が必要な場合は、あなただけのApacheゼータ自動ロード
  • SPLのautoloadを使用する場合:

    行く自動ロードメカニズムを得るための3つの異なる方法があります。 、あなたはいくつかの自動ロード機能

を登録する必要がある場合、これらの3つの方法are fully documented here

関連する問題