Completed
Push — 2.0 ( 9eb0c1...f96b39 )
by Nicolas
03:28
created

AdminBaseController::requireDefaultAssets()   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
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 5
rs 9.4285
1
<?php
2
3
namespace Modules\Core\Http\Controllers\Admin;
4
5
use Illuminate\Routing\Controller;
6
use Modules\Core\Foundation\Asset\Manager\AssetManager;
7
use Modules\Core\Foundation\Asset\Pipeline\AssetPipeline;
8
use Modules\Core\Foundation\Asset\Types\AssetTypeFactory;
9
10
class AdminBaseController extends Controller
11
{
12
    /**
13
     * @var AssetManager
14
     */
15
    protected $assetManager;
16
    /**
17
     * @var AssetPipeline
18
     */
19
    protected $assetPipeline;
20
    /**
21
     * @var AssetTypeFactory
22
     */
23
    protected $assetFactory;
24
25
    public function __construct()
26
    {
27
        $this->assetManager = app(AssetManager::class);
28
        $this->assetPipeline = app(AssetPipeline::class);
29
        $this->assetFactory = app(AssetTypeFactory::class);
30
31
        $this->addAssets();
32
        $this->requireDefaultAssets();
33
    }
34
35
    /**
36
     * Add the assets from the config file on the asset manager.
37
     */
38
    private function addAssets()
39
    {
40
        foreach (config('asgard.core.core.admin-assets') as $assetName => $path) {
41
            $path = $this->assetFactory->make($path)->url();
42
            $this->assetManager->addAsset($assetName, $path);
43
        }
44
    }
45
46
    /**
47
     * Require the default assets from config file on the asset pipeline.
48
     */
49
    private function requireDefaultAssets()
50
    {
51
        $this->assetPipeline->requireCss(config('asgard.core.core.admin-required-assets.css'));
52
        $this->assetPipeline->requireJs(config('asgard.core.core.admin-required-assets.js'));
53
    }
54
}
55