StreamerServiceProvider   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
eloc 11
c 1
b 0
f 0
dl 0
loc 17
ccs 10
cts 10
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A register() 0 15 3
1
<?php
2
3
namespace App\Providers;
4
5
use App\Services\Streamers\DirectStreamerInterface;
6
use App\Services\Streamers\ObjectStorageStreamerInterface;
7
use App\Services\Streamers\PHPStreamer;
8
use App\Services\Streamers\S3Streamer;
9
use App\Services\Streamers\TranscodingStreamer;
10
use App\Services\Streamers\TranscodingStreamerInterface;
11
use App\Services\Streamers\XAccelRedirectStreamer;
12
use App\Services\Streamers\XSendFileStreamer;
13
use Illuminate\Support\ServiceProvider;
14
15
class StreamerServiceProvider extends ServiceProvider
16
{
17 132
    public function register(): void
18
    {
19
        $this->app->bind(DirectStreamerInterface::class, static function (): DirectStreamerInterface {
20 11
            switch (config('koel.streaming.method')) {
21 11
                case 'x-sendfile':
22 1
                    return new XSendFileStreamer();
23 11
                case 'x-accel-redirect':
24 1
                    return new XAccelRedirectStreamer();
25
                default:
26 11
                    return new PHPStreamer();
27
            }
28 132
        });
29
30 132
        $this->app->bind(TranscodingStreamerInterface::class, TranscodingStreamer::class);
31 132
        $this->app->bind(ObjectStorageStreamerInterface::class, S3Streamer::class);
32 132
    }
33
}
34