ImageServiceProvider.php 1.7 KB

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