tomasvotruba / aws-sdk-php-symfony
AWS SDK for PHP v3 的 Symfony 扩展包
Requires
- php: ^8.1
- aws/aws-sdk-php: ^3.2.6
- symfony/config: ^6.0|^7.0
- symfony/dependency-injection: ^6.0|^7.0
- symfony/http-kernel: ^6.0|^7.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.5
- rector/rector: ^0.18.13
- symfony/framework-bundle: ^6.0|^7.0
- symfony/yaml: ^6.0|^7.0
- symplify/easy-coding-standard: ^12.1
README
用于包含 AWS SDK for PHP 的 Symfony 扩展包。
安装
composer require tomasvotruba/aws-sdk-php-symfony
并将 Aws\Symfony\AwsBundle
添加到 Kernel 中
class AppKernel extends Kernel { public function registerBundles(): array { return [ ... new \Aws\Symfony\AwsBundle(), ]; } ... }
配置
默认情况下,配置由 SDK 而不是扩展包处理,编译时不会进行验证。有关可用的配置选项的完整文档,请参阅 SDK 指南。
如果 AWS_MERGE_CONFIG 环境变量设置为 true
,则启用配置验证和合并。扩展包验证并合并已知的配置选项,包括每个服务。可以在单个配置文件中包含额外的配置选项,但如果在两次以上指定非标准选项,则合并将失败。
要使用任何配置值的服务,请使用 @
后跟服务名称,例如 @a_service
。此语法将在容器编译期间转换为服务。如果想要使用以 @
开头的字符串字面量,需要通过添加另一个 @
符号进行转义。
当使用 EC2 实例上的 SDK 时,可以写入 credentials: ~
以使用 实例配置文件凭证。此语法表示将自动从 EC2 实例的元数据服务器检索临时凭证。这也是向在该特定上下文中运行的应用程序提供凭证的首选技术。
示例配置可以在 tests/fixtures
文件夹中的 YAML、PHP 和 XML 中找到。
示例 YML 配置
可以将以下示例配置放置在 app/config/config.yml
文件中。
framework: secret: "Rosebud was the name of his sled." aws: version: latest region: us-east-1 credentials: key: not-a-real-key secret: "@@not-a-real-secret" # this will be escaped as '@not-a-real-secret' DynamoDb: region: us-west-2 S3: version: '2006-03-01' Sqs: credentials: "@a_service" CloudSearchDomain: endpoint: https://search-with-some-subdomain.us-east-1.cloudsearch.amazonaws.com services: a_service: class: Aws\Credentials\Credentials arguments: - a-different-fake-key - a-different-fake-secret
用法
此扩展包将 Aws\Sdk
对象的实例以及每个 AWS 客户端对象的实例作为服务公开到您的 symfony 应用程序中。它们的名称为 aws.{$namespace}
,其中 $namespace
是服务客户端的命名空间。例如
可用服务的列表取决于安装的 SDK 版本。要从应用程序的根目录运行以下命令以查看完整列表
php bin/console debug:container aws
有关列出的每个服务的完整文档,请参阅 SDK API 文档。