Completed
Pull Request — 2.0 (#49)
by
unknown
03:08
created

PartialAssetComposer::requireAssets()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 4
Bugs 1 Features 0
Metric Value
c 4
b 1
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
        $this->assetPipeline->requireCss(config('asgard.media.assets.media-partial-required-assets.css', []));
54
        $this->assetPipeline->requireJs(config('asgard.media.assets.media-partial-required-assets.js', []));
55
    }
56
}
57