Компоненты 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 способа полностью документированы здесь