ImageServiceProvider.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. if ($this->app instanceof \Laravel\Lumen\Application) {
  55. $provider = '\Intervention\Image\ImageServiceProviderLumen';
  56. } elseif (version_compare(\Illuminate\Foundation\Application::VERSION, '5.0', '<')) {
  57. $provider = '\Intervention\Image\ImageServiceProviderLaravel4';
  58. } else {
  59. $provider = '\Intervention\Image\ImageServiceProviderLaravel5';
  60. }
  61. return new $provider($this->app);
  62. }
  63. /**
  64. * Get the services provided by the provider.
  65. *
  66. * @return array
  67. */
  68. public function provides()
  69. {
  70. return array('image');
  71. }
  72. }