22
33namespace Yuges \Subscribable \Providers ;
44
5- use TypeError ;
5+ use Yuges \ Package \ Data \ Package ;
66use Yuges \Subscribable \Config \Config ;
7- use Illuminate \Support \ServiceProvider ;
87use Yuges \Subscribable \Models \Subscription ;
8+ use Yuges \Package \Providers \PackageServiceProvider ;
99use Yuges \Subscribable \Observers \SubscriptionObserver ;
10+ use Yuges \Subscribable \Exceptions \InvalidSubscription ;
1011
11- class SubscribableServiceProvider extends ServiceProvider
12+ class SubscribableServiceProvider extends PackageServiceProvider
1213{
13- public function boot ( ): void
14+ public function configure ( Package $ package ): void
1415 {
15- $ class = Config::getSubscriptionClass (Subscription::class);
16+ $ subscription = Config::getSubscriptionClass (Subscription::class);
1617
17- if (! is_a (new $ class , Subscription::class)) {
18- throw new TypeError ( ' Invalid model ' );
18+ if (! is_a ($ subscription , Subscription::class, true )) {
19+ throw InvalidSubscription:: doesNotImplementSubscription ( $ subscription );
1920 }
2021
21- $ class ::observe (new SubscriptionObserver );
22+ $ package
23+ ->hasConfig ('subscribable ' )
24+ ->hasObserver ($ subscription , SubscriptionObserver::class);
25+ }
2226
27+ public function packageBooted (): void
28+ {
2329 $ this ->publishes ([
2430 __DIR__ .'/../../config/subscribable.php ' => config_path ('subscribable.php ' )
2531 ], 'subscribable-config ' );
@@ -32,11 +38,4 @@ public function boot(): void
3238 __DIR__ .'/../../database/seeders/ ' => database_path ('seeders ' )
3339 ], 'subscribable-seeders ' );
3440 }
35-
36- public function register (): void
37- {
38- $ this ->mergeConfigFrom (
39- __DIR__ .'/../../config/subscribable.php ' , 'subscribable '
40- );
41- }
4241}
0 commit comments