This repository has been archived by the owner on Jan 1, 2023. It is now read-only.
/
StaticAsseticHelper.php
62 lines (52 loc) · 1.87 KB
/
StaticAsseticHelper.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
/*
* This file is part of the Symfony framework.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace Symfony\Bundle\AsseticBundle\Templating;
use Assetic\Asset\AssetInterface;
use Assetic\Factory\AssetFactory;
use Symfony\Component\Asset\Packages;
use Symfony\Component\Templating\Helper\CoreAssetsHelper;
/**
* The static "assetic" templating helper.
*
* @author Kris Wallsmith <kris@symfony.com>
*/
class StaticAsseticHelper extends AsseticHelper
{
private $packages;
private $assetsHelper;
/**
* Constructor.
*
* @param Packages|CoreAssetsHelper $packages The assets packages
* @param AssetFactory $factory The asset factory
*/
public function __construct($packages, AssetFactory $factory)
{
// Symfony <2.7 BC
if (!$packages instanceof Packages && !$packages instanceof CoreAssetsHelper) {
}
if ($packages instanceof Packages) {
$this->packages = $packages;
} elseif ($packages instanceof CoreAssetsHelper) {
$this->assetsHelper = $packages;
} else {
throw new \InvalidArgumentException('Argument 1 passed to '.__METHOD__.' must be an instance of Symfony\Component\Asset\Packages or Symfony\Component\Templating\Helper\CoreAssetsHelper, instance of '.get_class($packages).' given');
}
parent::__construct($factory);
}
protected function getAssetUrl(AssetInterface $asset, $options = array())
{
$package = isset($options['package']) ? $options['package'] : null;
if (null === $this->packages) {
return $this->assetsHelper->getUrl($asset->getTargetPath(), $package);
}
return $this->packages->getPackage($package)->getUrl($asset->getTargetPath());
}
}