私はUserFrosting外で期待どおりに動作し、次のコードを持っている:私の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>";
}
は、私は正常ComposerでAWS-SDK-PHPをロードするために管理:
- 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.
私は何が欠けていますか?
これに加えて、 'UserFrosting'名前空間がどこで/どのように呼び出されたかを理解するために、より多くのコードコンテキストを見ることなくOPの特定のエラーに対処する方法はありませんが、この答えはOPを正しい方向に向けるべきです。 –
@MikeBrantこのバージョンのUserFrostingのほとんどの[コントローラファイル](https://github.com/userfrosting/UserFrosting/blob/master/userfrosting/controllers/AccountController.php)は、先頭に 'namespace UserFrosting;'で始まります。したがって、OPが名前空間に精通していない場合、明示的に宣言されていない限り、PHPはこれをクラスへのすべての参照の名前空間と見なすことに気付かないでしょう。 – alexw