EventServiceProvider.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace App\Providers;
  3. use App\Ad\Providers\AdServiceProvider;
  4. use App\Common\Providers\CommonProvider;
  5. use App\ExcelData\Providers\ExcelDataProvider;
  6. use App\Form\Providers\FormServiceProvider;
  7. use App\User\Providers\UserProvider;
  8. use App\Web\Components\Ad\AdInfo;
  9. use App\Web\Components\Blog\BlogPlateTypeTag;
  10. use App\Web\Components\Blog\KnowledgeCentre;
  11. use App\Web\Components\Blog\NewsInfo;
  12. use App\Web\Components\Blog\NewsList;
  13. use App\Web\Components\Blog\Partners;
  14. use App\Web\Components\Blog\QuestionsAndAnswers;
  15. use App\Web\Components\Blog\RecentNewsList;
  16. use App\Web\Components\Blog\SolutionList;
  17. use App\Web\Components\Blog\SuccessCaseList;
  18. use App\Web\Components\Blog\TypeList;
  19. use App\Web\Components\Blog\VideoList;
  20. use App\Web\Components\Form\FormInfo;
  21. use App\Web\Components\Help\HelpList;
  22. use App\Web\Components\Meeting\MeetingGlobalList;
  23. use App\Web\Components\Meeting\MeetingInfo;
  24. use App\Web\Components\Meeting\MeetingList;
  25. use App\Web\Components\Page\PageContent;
  26. use App\Web\Components\Product\ProductList;
  27. use App\Web\Components\Product\ProductListByIds;
  28. use App\Web\Providers\WebServiceProvider;
  29. use Illuminate\Redis\RedisServiceProvider;
  30. use Illuminate\Support\Facades\Blade;
  31. use Laravel\Lumen\Providers\EventServiceProvider as ServiceProvider;
  32. class EventServiceProvider extends ServiceProvider
  33. {
  34. /**
  35. * The event listener mappings for the application.
  36. *
  37. * @var array
  38. */
  39. protected $listen = [
  40. \App\Events\ExampleEvent::class => [
  41. \App\Listeners\ExampleListener::class,
  42. ],
  43. ];
  44. //路由文件名
  45. protected $routes = 'routes.php';
  46. public function boot()
  47. {
  48. //自动载入路由
  49. $func = new \ReflectionClass(get_class($this));
  50. $path = str_replace($func->getShortName() . '.php', '', $func->getFileName());
  51. $routesFile = $path . '../' . $this->routes;
  52. if (file_exists($routesFile)) {
  53. require $routesFile;
  54. }
  55. if (!isset($this->app['blade.compiler'])) {
  56. $this->app['view'];
  57. }
  58. $this->registerComponent();
  59. parent::boot();
  60. }
  61. /**
  62. * Register any application services.
  63. *
  64. * @return void
  65. */
  66. public function register()
  67. {
  68. //注册redis服务
  69. $this->app->register(RedisServiceProvider::class);
  70. //注册userProvider
  71. $this->app->register(UserProvider::class);
  72. //注册CommonProvider
  73. $this->app->register(CommonProvider::class);
  74. //注册WebServiceProvider
  75. $this->app->register(WebServiceProvider::class);
  76. //注册导出excel
  77. $this->app->register(ExcelDataProvider::class);
  78. //注册FormProvider
  79. $this->app->register(FormServiceProvider::class);
  80. //注册广告Provider
  81. $this->app->register(AdServiceProvider::class);
  82. }
  83. /**
  84. * 注册组件
  85. */
  86. protected function registerComponent(){
  87. //广告
  88. Blade::component('ad-list', AdInfo::class);
  89. //表单
  90. Blade::component('form-info', FormInfo::class);
  91. //帮助列表
  92. Blade::component('help-list', HelpList::class);
  93. Blade::component('product-list', ProductList::class);
  94. Blade::component('product-list-by-ids', ProductListByIds::class);
  95. //会议列表
  96. Blade::component('meeting-list', MeetingList::class);
  97. Blade::component('meeting-info', MeetingInfo::class);
  98. Blade::component('meeting-global-list', MeetingGlobalList::class);
  99. //文本内容列表
  100. Blade::component('website-page-content', PageContent::class);
  101. // 文章板块组件
  102. Blade::component('blog-knowledge-centre', KnowledgeCentre::class);//知识中心
  103. Blade::component('blog-news-info', NewsInfo::class);//资讯详情
  104. Blade::component('blog-news-list', NewsList::class);//资讯列表
  105. Blade::component('blog-type-list', TypeList::class);//文章分类列表
  106. Blade::component('blog-partners', Partners::class);//合作伙伴
  107. Blade::component('blog-questions-and-answers', QuestionsAndAnswers::class);//问答
  108. Blade::component('blog-success-case-list', SuccessCaseList::class);//成功案例列表
  109. Blade::component('blog-solution-list', SolutionList::class);//解决方案列表
  110. Blade::component('blog-video-list', VideoList::class);//视频列表
  111. Blade::component('blog-recent-news-list', RecentNewsList::class);//最近资讯列表
  112. Blade::component('blog-plate-type-tag', BlogPlateTypeTag::class);//获取文章分类和标签
  113. }
  114. }