ImageServiceProvider.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. if (method_exists($this->provider, 'boot')) {
  37. return $this->provider->boot();
  38. }
  39. }
  40. /**
  41. * Register the service provider.
  42. *
  43. * @return void
  44. */
  45. public function register()
  46. {
  47. return $this->provider->register();
  48. }
  49. /**
  50. * Return ServiceProvider according to Laravel version
  51. *
  52. * @return \Intervention\Image\Provider\ProviderInterface
  53. */
  54. private function getProvider()
  55. {
  56. if ($this->app instanceof \Laravel\Lumen\Application) {
  57. $provider = '\Intervention\Image\ImageServiceProviderLumen';
  58. } elseif (version_compare(\Illuminate\Foundation\Application::VERSION, '5.0', '<')) {
  59. $provider = '\Intervention\Image\ImageServiceProviderLaravel4';
  60. } else {
  61. $provider = '\Intervention\Image\ImageServiceProviderLaravel5';
  62. }
  63. return new $provider($this->app);
  64. }
  65. /**
  66. * Get the services provided by the provider.
  67. *
  68. * @return array
  69. */
  70. public function provides()
  71. {
  72. return ['image'];
  73. }
  74. }