1 | <?php |
||
19 | class ExtensionServiceProvider extends \Illuminate\Support\ServiceProvider |
||
20 | { |
||
21 | /** |
||
22 | * Addon environment. |
||
23 | * |
||
24 | * @var \Jumilla\Addomnipot\Laravel\Environment |
||
25 | */ |
||
26 | protected $addonEnvironment; |
||
27 | |||
28 | /** |
||
29 | * @var array |
||
30 | */ |
||
31 | protected $addons; |
||
32 | |||
33 | /** |
||
34 | * Register the service provider. |
||
35 | */ |
||
36 | 2 | public function register() |
|
37 | { |
||
38 | 2 | $app = $this->app; |
|
39 | |||
40 | // register spec path for app |
||
41 | 2 | $app['path.specs'] = $app->basePath().'/resources/specs'; |
|
42 | |||
43 | // register spec repository |
||
44 | $app->singleton('specs', function ($app) { |
||
45 | $loader = new Repository\FileLoader($app['files'], $app['path.specs']); |
||
46 | |||
47 | return new Repository\NamespacedRepository($loader); |
||
48 | 2 | }); |
|
49 | |||
50 | // register addon environment |
||
51 | 2 | $app->instance('addon', $this->addonEnvironment = new AddonEnvironment($app)); |
|
52 | 2 | $app->alias('addon', AddonEnvironment::class); |
|
53 | |||
54 | // register addon generator |
||
55 | $app->singleton('addon.generator', function ($app) { |
||
56 | return new AddonGenerator(); |
||
57 | 2 | }); |
|
58 | 2 | $app->alias('addon.generator', AddonGenerator::class); |
|
59 | |||
60 | // register database migrator |
||
61 | 2 | $app->singleton('database.migrator', function ($app) { |
|
62 | return new Migrator($app['db'], $app['config']); |
||
63 | 2 | }); |
|
64 | 2 | $app->alias('database.migrator', Migrator::class); |
|
65 | |||
66 | 2 | $app['events']->fire(new AddonWorldCreated($this->addonEnvironment)); |
|
67 | |||
68 | 2 | $this->registerClassResolvers(); |
|
69 | |||
70 | 2 | (new AddonRegistrar)->register($app, $this->addonEnvironment->addons()); |
|
71 | |||
72 | 2 | $app['events']->fire(new AddonRegistered($this->addonEnvironment)); |
|
73 | 2 | } |
|
74 | |||
75 | /** |
||
76 | */ |
||
77 | 2 | protected function registerClassResolvers() |
|
85 | |||
86 | /** |
||
87 | * Bootstrap the application events. |
||
88 | */ |
||
89 | 2 | public function boot() |
|
101 | |||
102 | /** |
||
103 | * register blade extensions. |
||
104 | */ |
||
105 | 2 | protected function registerBladeExtensions() |
|
111 | } |
||
112 |