Я получил Amazon SDK
, чтобы хорошо работать с Symfony2 . Это включает загрузку sdk.class.php
прямо в autoload.php
. Я не уверен, что это лучше, но, кажется, так и есть.
Но моя главная проблема - загрузка учетных данных. Amazon тоже хочет вас .. отредактируйте config.inc.php
и поместите его либо в vendor directory
ИЛИ в HOME
. Вариант 1 не годится, потому что он включает в себя изменение Repo, которое будет перезаписано при обновлениях, а HOME
не работает, потому что он находится за пределами каталога моего проекта.
Что я сейчас делаю, внутри autoload.php
загружает sdk.class.php
и затем запускает CFCredentionals:set(array());
.. мой код ниже. Обычно я хотел бы сделать инъекцию зависимостей или использовать параметры ... но я не могу найти какой-либо другой способ загрузить учетные данные. Кроме того, я не хочу загружать их, когда создаю экземпляры Сервисов. как $e3 = new AmazonE3(array($a,$s));
. Это намного чище, и поток выровнен, чтобы иметь предварительно загруженные учетные данные, так что вы можете просто использовать $e3 = new AmazonE3();
Так вот что работает - но должен быть лучший способ
require_once __DIR__. '../../vendor/AmazonPHPSDK/sdk.class.php';
CFCredentials::set(array(
'@default' => array(
'key' => '1dfXXXXXXXXXXXXXXXXXXXXXZ82',
'secret' => '8tCXXXXXXXXXXXXXXXXXXXXXXfjB+Q',
'default_cache_config' => 'apc',
'certificate_authority' => false
)));
Нет ничего плохого в том, как Amazon хочет, чтобы мы загружали учетные данные. Похоже, что он просто не подходит для фреймворка Symfony2. Наличие массива с учетными данными для доступа в autoload.php просто не выглядит правильным.