ImageServiceProvider.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace Intervention\Image;
  3. use Illuminate\Support\ServiceProvider;
  4. class ImageServiceProvider extends ServiceProvider
  5. {
  6. /**
  7. * Indicates if loading of the provider is deferred.
  8. *
  9. * @var bool
  10. */
  11. protected $defer = false;
  12. /**
  13. * Actual provider
  14. *
  15. * @var \Illuminate\Support\ServiceProvider
  16. */
  17. protected $provider;
  18. /**
  19. * Create a new service provider instance.
  20. *
  21. * @param \Illuminate\Contracts\Foundation\Application $app
  22. * @return void
  23. */
  24. public function __construct($app)
  25. {
  26. parent::__construct($app);
  27. $this->provider = $this->getProvider();
  28. }
  29. /**
  30. * Bootstrap the application events.
  31. *
  32. * @return void
  33. */
  34. public function boot()
  35. {
  36. return $this->provider->boot();
  37. }
  38. /**
  39. * Register the service provider.
  40. *
  41. * @return void
  42. */
  43. public function register()
  44. {
  45. return $this->provider->register();
  46. }
  47. /**
  48. * Return ServiceProvider according to Laravel version
  49. *
  50. * @return \Intervention\Image\Provider\ProviderInterface
  51. */
  52. private function getProvider()
  53. {
  54. $app = $this->app;
  55. $version = intval($app::VERSION);
  56. $provider = sprintf(
  57. '\Intervention\Image\ImageServiceProviderLaravel%d', $version
  58. );
  59. return new $provider($app);
  60. }
  61. /**
  62. * Get the services provided by the provider.
  63. *
  64. * @return array
  65. */
  66. public function provides()
  67. {
  68. return array('image');
  69. }
  70. }