Я следующий код работает, как ожидалось вне UserFrosting:UserFrosting & AWS SDK
<?php
echo "Hello World.<br>";
require_once '../vendor/autoload.php';
use Aws\Common\Aws;
$aws = Aws::factory('../aws/aws-config.json');
$client = $aws->get('S3');
$bucket = 'my-public-public';
$iterator = $client->getIterator('ListObjects', array(
'Bucket' => $bucket
));
foreach ($iterator as $object) {
echo $object['Key'] . "<br>";
}
На моем UserFrosting Например, мне удалось успешно загрузить AWS-СДК-PHP с Composer:
- Installing aws/aws-sdk-php (3.19.24)
Downloading: 100%
использовать Aws \ Common \ Aws; помещается в initialize.php, ниже ссылки на Слим:
use \Slim\Extras\Middleware\CsrfGuard;
use Aws\Common\Aws;
Остальная часть кода в контроллере:
public function readS3(){
$aws = Aws::factory('../aws/aws-config.json');
$client = $aws->get('S3');
...
}
Я до сих пор получаю следующее сообщение об ошибке:
Class 'UserFrosting\Aws' not found.
Что мне не хватает?
Чтобы добавить к этому, нет возможности адресовать конкретную ошибку OP, не видя больше контекста кода, чтобы понять, где/как вызывается пространство имен 'UserFrosting', но этот ответ должен получить указание OP в правильном направлении. –
@MikeBrant Большинство [файлов контроллеров] (https://github.com/userfrosting/UserFrosting/blob/master/userfrosting/controllers/AccountController.php) в этой версии UserFrosting начинаются с 'namespace UserFrosting;' вверху. Поэтому, если OP не знаком с пространствами имен, они, вероятно, не понимают, что PHP будет рассматривать это пространство имен для ВСЕХ ссылок на классы, если явно не указано иначе. – alexw