1 | <?php |
||||
2 | /** |
||||
3 | * src/InfluxDbServiceProvider.php. |
||||
4 | * |
||||
5 | * @author Austin Heap <[email protected]> |
||||
6 | * @version v0.1.7 |
||||
7 | */ |
||||
8 | declare(strict_types=1); |
||||
9 | |||||
10 | namespace AustinHeap\Database\InfluxDb; |
||||
11 | |||||
12 | use Monolog\Logger; |
||||
13 | use Illuminate\Log\Writer; |
||||
14 | use Illuminate\Support\Facades\Log; |
||||
15 | use InfluxDB\Client as InfluxClient; |
||||
16 | use Illuminate\Support\ServiceProvider; |
||||
17 | use AustinHeap\Database\InfluxDb\Logs\Formatter; |
||||
18 | use InfluxDB\Client\Exception as ClientException; |
||||
19 | use AustinHeap\Database\InfluxDb\Logs\MonologHandler; |
||||
20 | |||||
21 | /** |
||||
22 | * Class InfluxDbServiceProvider. |
||||
23 | */ |
||||
24 | class InfluxDbServiceProvider extends ServiceProvider |
||||
25 | { |
||||
26 | /** |
||||
27 | * @return void |
||||
28 | */ |
||||
29 | public function boot(): void |
||||
30 | { |
||||
31 | $this->publishes([ |
||||
32 | __DIR__.'/config/influxdb.php' => config_path('influxdb.php'), |
||||
33 | ]); |
||||
34 | |||||
35 | $this->mergeConfigFrom(__DIR__.'/config/influxdb.php', 'influxdb'); |
||||
36 | |||||
37 | if (config('influxdb.log.monolog', false) === true) { |
||||
38 | $handler = new MonologHandler($this->getLoggingLevel()); |
||||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||||
39 | $handler->setFormatter(new Formatter()); |
||||
40 | |||||
41 | $monolog = Log::getMonolog(); |
||||
42 | $monolog->pushHandler($handler); |
||||
43 | |||||
44 | $new_log = new Writer($monolog, Log::getEventDispatcher()); |
||||
45 | Log::swap($new_log); |
||||
46 | } |
||||
47 | } |
||||
48 | |||||
49 | /** |
||||
50 | * @return void |
||||
51 | */ |
||||
52 | public function register(): void |
||||
53 | { |
||||
54 | $this->app->singleton('InfluxDb', function ($app) { |
||||
0 ignored issues
–
show
The parameter
$app is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. ![]() |
|||||
55 | try { |
||||
56 | $timeout = is_int(config('influxdb.timeout', null)) ? config('influxdb.timeout') : 5; |
||||
57 | $verifySsl = is_bool(config('influxdb.verify_ssl', null)) ? config('influxdb.verify_ssl') : true; |
||||
58 | $protocol = 'influxdb'; |
||||
59 | |||||
60 | if (in_array(config('influxdb.protocol'), ['https', 'udp'])) { |
||||
61 | $protocol = config('influxdb.protocol').'+'.$protocol; |
||||
62 | } |
||||
63 | |||||
64 | $dsn = sprintf('%s://%s:%s@%s:%s/%s', |
||||
65 | $protocol, |
||||
66 | config('influxdb.user'), |
||||
67 | config('influxdb.pass'), |
||||
68 | config('influxdb.host'), |
||||
69 | config('influxdb.port'), |
||||
70 | config('influxdb.database') |
||||
71 | ); |
||||
72 | |||||
73 | return InfluxClient::fromDSN($dsn, $timeout, $verifySsl); |
||||
74 | } catch (ClientException $exception) { |
||||
75 | throw $exception; |
||||
76 | } |
||||
77 | }); |
||||
78 | } |
||||
79 | |||||
80 | /** |
||||
81 | * @return \Illuminate\Config\Repository|int|mixed|string |
||||
82 | */ |
||||
83 | private function getLoggingLevel() |
||||
84 | { |
||||
85 | $level = config('influxdb.log.level', 'DEBUG'); |
||||
86 | $level = empty($level) ? 'DEBUG' : $level; |
||||
87 | |||||
88 | return in_array($level, [ |
||||
89 | 'DEBUG', |
||||
90 | 'INFO', |
||||
91 | 'NOTICE', |
||||
92 | 'WARNING', |
||||
93 | 'ERROR', |
||||
94 | 'CRITICAL', |
||||
95 | 'ALERT', |
||||
96 | 'EMERGENCY', |
||||
97 | ]) ? $level : Logger::DEBUG; |
||||
98 | } |
||||
99 | |||||
100 | /** |
||||
101 | * @return \InfluxDB\Client|\InfluxDB\Database |
||||
102 | */ |
||||
103 | public static function getInstance() |
||||
104 | { |
||||
105 | return app('InfluxDb'); |
||||
106 | } |
||||
107 | } |
||||
108 |