PHP code example of cinghie / yii2-aws
1. Go to this page and download the library: Download cinghie/yii2-aws library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cinghie / yii2-aws example snippets
use cinghie\aws\components\AWS;
use cinghie\aws\AWS as AWSModule;
return [
'components' => [
'aws' => [
'class' => AWS::class,
'region' => 'eu-south-1',
'version' => 'latest',
],
],
'modules' => [
'aws' => [
'class' => AWSModule::class,
'awsRoles' => ['admin'],
],
],
];
'aws' => [
'class' => cinghie\aws\components\AWS::class,
'region' => 'eu-south-1',
'version' => 'latest',
],
'aws' => [
'class' => cinghie\aws\components\AWS::class,
'profile' => 'default',
'region' => 'eu-south-1',
'version' => 'latest',
],
'aws' => [
'class' => cinghie\aws\components\AWS::class,
'accessKey' => getenv('AWS_ACCESS_KEY_ID'),
'secretKey' => getenv('AWS_SECRET_ACCESS_KEY'),
'region' => 'eu-south-1',
'version' => 'latest',
],
'aws' => [
'class' => cinghie\aws\components\AWS::class,
'region' => 'eu-south-1',
'version' => 'latest',
'profile' => 'default',
'endpoint' => 'http://minio:9000',
'usePathStyleEndpoint' => true,
'retries' => 3,
'debug' => false,
'http' => [
'connect_timeout' => 5,
'timeout' => 30,
],
'sdkOptions' => [
// Any other option supported by Aws\Sdk.
],
],
use Aws\Exception\AwsException;
use cinghie\aws\models\S3;
try {
$s3 = Yii::createObject(S3::class);
$buckets = $s3->getBuckets();
} catch (AwsException $e) {
Yii::error($e->getMessage(), __METHOD__);
Yii::$app->session->setFlash('error', Yii::t('aws', 'Unable to load AWS data.'));
} catch (InvalidArgumentException $e) {
Yii::$app->session->setFlash('error', $e->getMessage());
}
use Aws\S3\S3Client;
use cinghie\aws\models\S3;
$client = new S3Client([
'region' => 'eu-south-1',
'version' => 'latest',
]);
$s3 = Yii::createObject([
'class' => S3::class,
's3Client' => $client,
]);
use Aws\Exception\AwsException;
use cinghie\aws\models\S3;
try {
$s3 = Yii::createObject(S3::class);
$result = $s3->getBuckets();
foreach ($result['Buckets'] as $bucket) {
echo $bucket['Name'] . PHP_EOL;
}
} catch (AwsException $e) {
Yii::error($e->getMessage(), __METHOD__);
}
$s3 = Yii::createObject(\cinghie\aws\models\S3::class);
$result = $s3->createBucket('my-application-bucket');
$s3 = Yii::createObject(\cinghie\aws\models\S3::class);
$result = $s3->putObjectInBucket(
'my-application-bucket',
'documents/report.pdf',
Yii::getAlias('@runtime/report.pdf')
);
'aws' => [
'class' => cinghie\aws\components\AWS::class,
'region' => 'us-east-1',
'version' => 'latest',
'endpoint' => 'http://minio:9000',
'usePathStyleEndpoint' => true,
'accessKey' => getenv('MINIO_ACCESS_KEY'),
'secretKey' => getenv('MINIO_SECRET_KEY'),
],
use Aws\Exception\AwsException;
use cinghie\aws\models\SES;
try {
$ses = Yii::createObject(SES::class);
$result = $ses->verifyEmailIdentity('[email protected] ');
} catch (AwsException $e) {
Yii::error($e->getMessage(), __METHOD__);
}
$ses = Yii::createObject(\cinghie\aws\models\SES::class);
$result = $ses->listIdentities();
$ses = Yii::createObject(\cinghie\aws\models\SES::class);
$result = $ses->createTemplate(
'OrderConfirmation',
'Order confirmation',
'<h1>Thank you for your order</h1>',
'Thank you for your order'
);
$ses = Yii::createObject(\cinghie\aws\models\SES::class);
$result = $ses->sendTemplatedEmail(
'OrderConfirmation',
'[email protected] ',
['[email protected] '],
'[email protected] '
);
$ses = Yii::createObject(\cinghie\aws\models\SES::class);
$result = $ses->createEmailFilter(
'OfficeIpAllowList',
'203.0.113.10/32',
'Allow'
);
$ses = Yii::createObject(\cinghie\aws\models\SES::class);
$result = $ses->createReceiptRule(
'InboundToS3',
'DefaultRuleSet',
'my-application-bucket',
['[email protected] ']
);
use Aws\Exception\AwsException;
use cinghie\aws\models\SNS;
try {
$sns = Yii::createObject(SNS::class);
$result = $sns->createTopic('orders-events');
$topicArn = $result['TopicArn'];
} catch (AwsException $e) {
Yii::error($e->getMessage(), __METHOD__);
}
$sns = Yii::createObject(\cinghie\aws\models\SNS::class);
$result = $sns->subscribeEmailToTopic(
'email',
'[email protected] ',
'arn:aws:sns:eu-south-1:123456789012:orders-events'
);
$sns = Yii::createObject(\cinghie\aws\models\SNS::class);
$result = $sns->subscribeAppEndPointToTopic(
'https',
'https://example.com/sns/webhook',
'arn:aws:sns:eu-south-1:123456789012:orders-events'
);
'modules' => [
'aws' => [
'class' => cinghie\aws\AWS::class,
'awsRoles' => ['admin'],
],
],
'modules' => [
'aws' => [
'class' => cinghie\aws\AWS::class,
'controllerMap' => [
's3' => 'app\controllers\S3Controller',
'ses' => 'app\controllers\SesController',
'sns' => 'app\controllers\SnsController',
],
],
],
'modules' => [
'aws' => [
'class' => cinghie\aws\AWS::class,
'modelMap' => [
'S3' => 'app\models\S3',
'SES' => 'app\models\SES',
'SNS' => 'app\models\SNS',
],
],
],
'components' => [
'view' => [
'theme' => [
'pathMap' => [
'@cinghie/aws/views/s3' => '@app/views/aws/s3',
'@cinghie/aws/views/ses' => '@app/views/aws/ses',
'@cinghie/aws/views/sns' => '@app/views/aws/sns',
],
],
],
],
use cinghie\aws\filters\FrontendFilter as AwsFrontendFilter;
'modules' => [
'aws' => [
'class' => cinghie\aws\AWS::class,
'as frontend' => AwsFrontendFilter::class,
],
],