ShopServiceProvider.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace App\Module\Shop\Providers;
  3. use Illuminate\Support\ServiceProvider;
  4. /**
  5. * 商店模块服务提供者
  6. *
  7. * 负责注册商店模块的服务、命令、事件监听器等
  8. * 此类是商店模块与Laravel框架集成的核心
  9. */
  10. class ShopServiceProvider extends ServiceProvider
  11. {
  12. /**
  13. * 注册服务
  14. *
  15. * 在此方法中注册商店模块的服务容器绑定
  16. * 此方法在应用启动早期被调用,适合注册服务但不适合使用任何服务
  17. *
  18. * @return void
  19. */
  20. public function register()
  21. {
  22. // 注册服务...
  23. }
  24. /**
  25. * 引导服务
  26. *
  27. * 在所有服务提供者被注册后调用,可以使用已注册的服务
  28. * 负责注册命令、事件监听器等
  29. *
  30. * @return void
  31. */
  32. public function boot()
  33. {
  34. // 注册命令
  35. if ($this->app->runningInConsole()) {
  36. $this->commands([
  37. \App\Module\Shop\Commands\GenerateShopItemsJsonCommand::class, // 生成商店商品JSON数据命令
  38. ]);
  39. }
  40. // 注册后台路由
  41. $this->registerAdminRoutes();
  42. // 注册事件监听器
  43. $this->registerEventListeners();
  44. }
  45. /**
  46. * 注册后台路由
  47. *
  48. * @return void
  49. */
  50. protected function registerAdminRoutes()
  51. {
  52. \Dcat\Admin\Admin::routes();
  53. $attributes = [
  54. 'prefix' => config('admin.route.prefix'),
  55. 'middleware' => config('admin.route.middleware'),
  56. ];
  57. app('router')->group($attributes, function ($router) {
  58. // 商店分类路由
  59. $router->resource('shop/categories', \App\Module\Shop\AdminControllers\ShopCategoryController::class);
  60. // 商店商品路由
  61. $router->resource('shop/items', \App\Module\Shop\AdminControllers\ShopItemController::class);
  62. // 商店促销活动路由
  63. $router->resource('shop/promotions', \App\Module\Shop\AdminControllers\ShopPromotionController::class);
  64. // 促销活动商品管理路由
  65. $router->get('shop/promotions/{id}/items', [\App\Module\Shop\AdminControllers\ShopPromotionController::class, 'items']);
  66. $router->post('shop/promotions/{id}/items/add', [\App\Module\Shop\AdminControllers\ShopPromotionController::class, 'addItem']);
  67. $router->get('shop/promotions/{id}/items/remove', [\App\Module\Shop\AdminControllers\ShopPromotionController::class, 'removeItem']);
  68. // 商店购买记录路由
  69. $router->resource('shop/purchase-logs', \App\Module\Shop\AdminControllers\ShopPurchaseLogController::class);
  70. // 商店限购配置路由
  71. $router->resource('shop/purchase-limits', \App\Module\Shop\AdminControllers\ShopPurchaseLimitController::class);
  72. });
  73. }
  74. /**
  75. * 注册事件监听器
  76. *
  77. * @return void
  78. */
  79. protected function registerEventListeners()
  80. {
  81. // 注册事件监听器...
  82. }
  83. }