123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Bridge\Twig\Extension;
- use Symfony\Component\Asset\Packages;
- use Twig\Extension\AbstractExtension;
- use Twig\TwigFunction;
- /**
- * Twig extension for the Symfony Asset component.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
- class AssetExtension extends AbstractExtension
- {
- private $packages;
- public function __construct(Packages $packages)
- {
- $this->packages = $packages;
- }
- /**
- * {@inheritdoc}
- */
- public function getFunctions()
- {
- return array(
- new TwigFunction('asset', array($this, 'getAssetUrl')),
- new TwigFunction('asset_version', array($this, 'getAssetVersion')),
- );
- }
- /**
- * Returns the public url/path of an asset.
- *
- * If the package used to generate the path is an instance of
- * UrlPackage, you will always get a URL and not a path.
- *
- * @param string $path A public path
- * @param string $packageName The name of the asset package to use
- *
- * @return string The public path of the asset
- */
- public function getAssetUrl($path, $packageName = null)
- {
- return $this->packages->getUrl($path, $packageName);
- }
- /**
- * Returns the version of an asset.
- *
- * @param string $path A public path
- * @param string $packageName The name of the asset package to use
- *
- * @return string The asset version
- */
- public function getAssetVersion($path, $packageName = null)
- {
- return $this->packages->getVersion($path, $packageName);
- }
- /**
- * Returns the name of the extension.
- *
- * @return string The extension name
- */
- public function getName()
- {
- return 'asset';
- }
- }
|