src/AwsServiceProvider.php (37 lines of code) (raw):

<?php namespace Aws\Laravel; use Aws\Sdk; use Illuminate\Foundation\Application as LaravelApplication; use Illuminate\Support\ServiceProvider; use Laravel\Lumen\Application as LumenApplication; /** * AWS SDK for PHP service provider for Laravel applications */ class AwsServiceProvider extends ServiceProvider { const VERSION = '3.7.0'; /** * Indicates if loading of the provider is deferred. * * @var bool */ protected $defer = true; /** * Bootstrap the configuration * * @return void */ public function boot() { if ($this->app instanceof LaravelApplication && $this->app->runningInConsole()) { $this->publishes( [__DIR__.'/../config/aws_publish.php' => config_path('aws.php')], 'aws-config' ); } elseif ($this->app instanceof LumenApplication) { $this->app->configure('aws'); } } /** * Register the service provider. * * @return void */ public function register() { $this->mergeConfigFrom( __DIR__.'/../config/aws_default.php', 'aws' ); $this->app->singleton('aws', function ($app) { $config = $app->make('config')->get('aws'); return new Sdk($config); }); $this->app->alias('aws', 'Aws\Sdk'); } /** * Get the services provided by the provider. * * @return array */ public function provides() { return ['aws', 'Aws\Sdk']; } }