1 | <?php |
||
18 | class MultiLangServiceProvider extends ServiceProvider |
||
19 | { |
||
20 | /** |
||
21 | * Indicates if loading of the provider is deferred. |
||
22 | * |
||
23 | * @var bool |
||
24 | */ |
||
25 | protected $defer = false; |
||
26 | |||
27 | |||
28 | /** |
||
29 | * Bootstrap any application services. |
||
30 | * |
||
31 | * @return void |
||
32 | */ |
||
33 | 33 | public function boot() |
|
34 | { |
||
35 | |||
36 | // Publish config files |
||
37 | 33 | $this->publishes([__DIR__ . '/../config/config.php' => config_path('multilang.php')]); |
|
38 | |||
39 | // Append the country settings |
||
40 | 33 | $this->mergeConfigFrom( |
|
41 | 33 | __DIR__ . '/../config/config.php', |
|
42 | 33 | 'multilang' |
|
43 | ); |
||
44 | |||
45 | // Register blade directives |
||
46 | Blade::directive('t', function ($expression) { |
||
47 | return "<?php echo e(t({$expression})); ?>"; |
||
48 | 33 | }); |
|
49 | |||
50 | 33 | } |
|
51 | |||
52 | /** |
||
53 | * Register any application services. |
||
54 | * |
||
55 | * @return void |
||
56 | */ |
||
57 | 33 | public function register() |
|
58 | { |
||
59 | 33 | $configPath = __DIR__ . '/../config/config.php'; |
|
60 | 33 | $this->mergeConfigFrom($configPath, 'debugbar'); |
|
61 | |||
62 | $this->app->singleton('multilang', function ($app) { |
||
63 | 3 | $locale = $app->getLocale(); |
|
64 | 3 | $environment = $app->environment(); |
|
65 | 3 | $config = $app['config']->get('multilang'); |
|
66 | |||
67 | 3 | $multilang = new \Longman\LaravelMultiLang\MultiLang( |
|
68 | $environment, |
||
69 | $config, |
||
70 | 3 | $app['cache'], |
|
71 | 3 | $app['db'] |
|
72 | ); |
||
73 | |||
74 | 3 | $multilang->setLocale($locale); |
|
75 | |||
76 | 3 | if ($multilang->autoSaveIsAllowed()) { |
|
77 | $app->terminating(function () use ($multilang) { |
||
78 | return $multilang->saveTexts(); |
||
79 | }); |
||
80 | } |
||
81 | |||
82 | 3 | return $multilang; |
|
83 | 33 | }); |
|
84 | |||
85 | 33 | $this->app->alias('multilang', 'Longman\LaravelMultiLang\MultiLang'); |
|
86 | |||
87 | 33 | $this->app['command.multilang.migration'] = $this->app->share( |
|
88 | function () { |
||
89 | return new MigrationCommand(); |
||
90 | 33 | } |
|
91 | ); |
||
92 | |||
93 | 33 | $this->app['command.multilang.texts'] = $this->app->share( |
|
94 | 33 | function () { |
|
95 | return new TextsCommand(); |
||
96 | 33 | } |
|
97 | ); |
||
98 | |||
99 | 33 | $this->commands(['command.multilang.migration', 'command.multilang.texts']); |
|
100 | |||
101 | 33 | } |
|
102 | |||
103 | /** |
||
104 | * Get the services provided by the provider. |
||
105 | * |
||
106 | * @return array |
||
107 | */ |
||
108 | 3 | public function provides() |
|
115 | |||
116 | } |
||
117 |