OpenAPIServiceProvider.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace App\Module\OpenAPI\Providers;
  3. use App\Module\OpenAPI\Events\AppCreatedEvent;
  4. use App\Module\OpenAPI\Listeners\AppCreatedListener;
  5. use Illuminate\Support\Facades\Event;
  6. use Illuminate\Support\ServiceProvider;
  7. /**
  8. * OpenAPI模块服务提供者
  9. *
  10. * 专注于后台管理功能,使用注解路由,不注册API路由和资源
  11. */
  12. class OpenAPIServiceProvider extends ServiceProvider
  13. {
  14. /**
  15. * 注册服务
  16. *
  17. * @return void
  18. */
  19. public function register()
  20. {
  21. // 注册配置文件
  22. $this->mergeConfigFrom(
  23. __DIR__ . '/../Config/openapi.php',
  24. 'openapi'
  25. );
  26. // 注册服务
  27. $this->registerServices();
  28. }
  29. /**
  30. * 启动服务
  31. *
  32. * @return void
  33. */
  34. public function boot()
  35. {
  36. // 注册事件监听器
  37. $this->registerEventListeners();
  38. }
  39. /**
  40. * 注册服务
  41. *
  42. * @return void
  43. */
  44. protected function registerServices()
  45. {
  46. // 注册OpenAPI服务
  47. $this->app->singleton('openapi.service', function () {
  48. return new \App\Module\OpenAPI\Services\OpenApiService();
  49. });
  50. // 注册认证服务
  51. $this->app->singleton('openapi.auth', function ($app) {
  52. return new \App\Module\OpenAPI\Services\AuthService(
  53. $app->make('openapi.service')
  54. );
  55. });
  56. }
  57. /**
  58. * 注册事件监听器
  59. *
  60. * @return void
  61. */
  62. protected function registerEventListeners()
  63. {
  64. Event::listen(
  65. AppCreatedEvent::class,
  66. AppCreatedListener::class
  67. );
  68. }
  69. /**
  70. * 获取提供的服务
  71. *
  72. * @return array
  73. */
  74. public function provides()
  75. {
  76. return [
  77. 'openapi.service',
  78. 'openapi.auth',
  79. ];
  80. }
  81. }