Компоненты ez и AWS PHP SDK выводят из строя компоненты ez

Я пытаюсь работать с ez Components и AWS PHP SDK одновременно.

У меня есть файл под названием resize.php, который просто обрабатывает изображения с помощью инструментов eT Components ImageTransition.

Я помещаю изображение в очередь для изменения размера в Amazon AWS SQS. Если я загружаю AWS PHP SDK и компоненты ez в один и тот же файл, PHP всегда жалуется, что не находит классы компонентов ez.

Код выглядит примерно так:

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

Если я вызываю resize.php из другого PHP-файла, в который не включен AWS, он работает нормально.

Я загружаю ezComponents следующим образом:

require 'ezc/Base/ezc_bootstrap.php';

Он устанавливается как пакет PEAR.

Есть идеи у кого-нибудь?

1 ответ

PHP-классы Apache Zeta / eZ Components могут быть удобно использованы в вашем PHP-скрипте. Вам не нужно использовать какие-либо операторы require или include для каких-либо классов Apache Zeta Components, которые вы используете, это из-за встроенного механизма автозагрузки, который может найти классы для вас, когда вы создаете их экземпляр или используете их иначе.

Есть три способа запустить механизм автозагрузки:

  • Обычная автозагрузка, если вам требуется пользовательская функция автозагрузки
  • Загрузочный файл, если вы используете только автозагрузку Apache Zeta
  • Автозагрузка SPL, если вам нужно зарегистрировать несколько функций автозагрузки

Эти 3 способа полностью документированы здесь

Другие вопросы по тегам