Completed
Push — 2.0 ( add69f...60b181 )
by Nicolas
02:30
created

PartialAssetComposer::compose()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
3
namespace Modules\Media\Composers\Backend;
4
5
use Modules\Core\Foundation\Asset\Manager\AssetManager;
6
use Modules\Core\Foundation\Asset\Pipeline\AssetPipeline;
7
use Modules\Core\Foundation\Asset\Types\AssetTypeFactory;
8
9
class PartialAssetComposer
10
{
11
    /**
12
     * @var AssetManager
13
     */
14
    private $assetManager;
15
    /**
16
     * @var AssetPipeline
17
     */
18
    private $assetPipeline;
19
    /**
20
     * @var AssetTypeFactory
21
     */
22
    private $assetFactory;
23
24
    public function __construct()
25
    {
26
        $this->assetManager = app(AssetManager::class);
27
        $this->assetPipeline = app(AssetPipeline::class);
28
        $this->assetFactory = app(AssetTypeFactory::class);
29
    }
30
31
    public function compose()
32
    {
33
        $this->addAssets();
34
        $this->requireAssets();
35
    }
36
37
    /**
38
     * Add the assets from the config file on the asset manager
39
     */
40
    private function addAssets()
41
    {
42
        foreach (config('asgard.media.assets.media-partial-assets', []) as $assetName => $path) {
43
            $path = $this->assetFactory->make($path)->url();
44
            $this->assetManager->addAsset($assetName, $path);
45
        }
46
    }
47
48
    /**
49
     * Require assets from asset manager
50
     */
51
    private function requireAssets()
52
    {
53
        $css = config('asgard.media.assets.media-partial-required-assets.css');
54
        $js  = config('asgard.media.assets.media-partial-required-assets.js');
55
56
        if (!empty($css)) {
57
            $this->assetPipeline->requireCss($css);
58
        }
59
60
        if (!empty($js)) {
61
            $this->assetPipeline->requireJs($js);
62
        }
63
    }
64
}
65