PHP 5.5 を使用しており、AWS-SDK for PHP を使用しようとしています。
私のコードは次のようになります。
require_once 'AWS/aws.phar';
use Aws\DynamoDb\DynamoDbClient;
DynamoDBAccessLayer::init();
class DynamoDBAccessLayer {
public static $client;
public static $AWSCredentials = array(
'region' => 'us-east-1',
'key' => 'KEY',
'secret' => 'SECRET'
);
public static function init() {
self::$client = DynamoDbClient::factory(self::$AWSCredentials);
}
}
この時点で私がやろうとしているのは、クライアントを開始することだけですが、名前空間に関連する問題があり、init() が実行されると次のエラーがスローされます。
PHP Fatal error: Class 'Aws\DynamoDb\DynamoDbClient' not found in....
これが名前空間の問題であることがわかっている理由は、次のコードがエラーなしでクライアントを適切に割り当てているからです。
require_once 'AWS/aws.phar';
use Aws\DynamoDb\DynamoDbClient;
DynamoDBAccessLayer::$client = Aws\DynamoDb\DynamoDbClient::factory(DynamoDbAccessLayer::$AWSCredentials);
class DynamoDBAccessLayer {
public static $client;
public static $AWSCredentials = array(
'region' => 'us-east-1',
'key' => 'KEY',
'secret' => 'SECRET'
);
}
そのため、PHP はこれらの静的メソッドの外部にある DynamoDbClient クラスにアクセスできますが、内部にアクセスすることはできません。
init() 静的メソッド内で Aws\DynamoDb\DynamoDbClient にアクセスできるようにするにはどうすればよいですか?