| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- namespace App\Module\Ulogic\Providers;
- use App\Module\Ulogic\Events\MessageSentEvent;
- use App\Module\Ulogic\Events\UserPunishedEvent;
- use App\Module\Ulogic\Events\UserTimeUpdatedEvent;
- use App\Module\Ulogic\Listeners\UlogicEventListener;
- use Illuminate\Support\ServiceProvider;
- /**
- * 用户逻辑模块服务提供者
- */
- class UlogicServiceProvider extends ServiceProvider
- {
- /**
- * 事件到监听器的映射
- *
- * @var array
- */
- protected $listen = [
- UserPunishedEvent::class => [
- UlogicEventListener::class . '@handleUserPunished',
- ],
- MessageSentEvent::class => [
- UlogicEventListener::class . '@handleMessageSent',
- ],
- UserTimeUpdatedEvent::class => [
- UlogicEventListener::class . '@handleUserTimeUpdated',
- ],
- ];
- /**
- * 需要注册的订阅者
- *
- * @var array
- */
- protected $subscribe = [
- UlogicEventListener::class,
- ];
- /**
- * 注册服务
- *
- * @return void
- */
- public function register(): void
- {
- // 注册服务...
- $this->app->singleton('ulogic.app.message.service', function ($app) {
- return new \App\Module\Ulogic\Services\AppMessageService();
- });
-
- $this->app->singleton('ulogic.user.address.service', function ($app) {
- return new \App\Module\Ulogic\Services\UserAddressService();
- });
-
- $this->app->singleton('ulogic.user.relation.service', function ($app) {
- return new \App\Module\Ulogic\Services\UserRelationService();
- });
-
- $this->app->singleton('ulogic.wallet.address.service', function ($app) {
- return new \App\Module\Ulogic\Services\WalletAddressService();
- });
- }
- /**
- * 启动服务
- *
- * @return void
- */
- public function boot(): void
- {
- // 注册事件监听器
- $this->registerEvents();
- }
- /**
- * 注册事件和监听器
- *
- * @return void
- */
- protected function registerEvents(): void
- {
- $events = $this->app['events'];
- foreach ($this->listen as $event => $listeners) {
- foreach ($listeners as $listener) {
- $events->listen($event, $listener);
- }
- }
- foreach ($this->subscribe as $subscriber) {
- $events->subscribe($subscriber);
- }
- }
- }
|