DefaultApie   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 14
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
dl 0
loc 14
rs 10
c 1
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A createDefaultApie() 0 12 3
1
<?php
2
3
namespace W2w\Lib\Apie;
4
5
use Carbon\Carbon;
6
use W2w\Lib\Apie\Plugins\ApplicationInfo\ApplicationInfoPlugin;
7
use W2w\Lib\Apie\Plugins\Carbon\CarbonPlugin;
8
use W2w\Lib\Apie\Plugins\DateTime\DateTimePlugin;
9
use W2w\Lib\Apie\Plugins\Pagination\PaginationPlugin;
10
use W2w\Lib\Apie\Plugins\StatusCheck\StatusCheckPlugin;
11
use W2w\Lib\Apie\Plugins\Uuid\UuidPlugin;
12
use W2w\Lib\Apie\Plugins\ValueObject\ValueObjectPlugin;
13
14
/**
15
 * Helper class to make a general Apie instance with common plugins active.
16
 */
17
class DefaultApie
18
{
19
    public static function createDefaultApie(bool $debug = false, array $additionalPlugins = [], ?string $cacheFolder = null, bool $defaultResources = true): Apie
20
    {
21
        $plugins = $additionalPlugins;
22
        $plugins[] = class_exists(Carbon::class) ? new CarbonPlugin() : new DateTimePlugin();
23
        $plugins[] = new PaginationPlugin();
24
        $plugins[] = new UuidPlugin();
25
        $plugins[] = new ValueObjectPlugin();
26
        if ($defaultResources) {
27
            $plugins[] = new ApplicationInfoPlugin();
28
            $plugins[] = new StatusCheckPlugin([]);
29
        }
30
        return new Apie($plugins, $debug, $cacheFolder);
31
    }
32
}
33