70 lines
2.0 KiB
PHP
70 lines
2.0 KiB
PHP
|
<?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\Twig;
|
||
|
|
||
|
use Assetic\ValueSupplierInterface;
|
||
|
use Assetic\Extension\Twig\AsseticExtension as BaseAsseticExtension;
|
||
|
use Assetic\Factory\AssetFactory;
|
||
|
use Symfony\Component\Templating\TemplateNameParserInterface;
|
||
|
|
||
|
/**
|
||
|
* Assetic extension.
|
||
|
*
|
||
|
* @author Kris Wallsmith <kris@symfony.com>
|
||
|
*/
|
||
|
class AsseticExtension extends BaseAsseticExtension
|
||
|
{
|
||
|
private $useController;
|
||
|
|
||
|
public function __construct(AssetFactory $factory, TemplateNameParserInterface $templateNameParser, $useController = false, $functions = array(), $enabledBundles = array(), ValueSupplierInterface $valueSupplier = null)
|
||
|
{
|
||
|
parent::__construct($factory, $functions, $valueSupplier);
|
||
|
|
||
|
$this->useController = $useController;
|
||
|
$this->templateNameParser = $templateNameParser;
|
||
|
$this->enabledBundles = $enabledBundles;
|
||
|
}
|
||
|
|
||
|
public function getTokenParsers()
|
||
|
{
|
||
|
return array(
|
||
|
$this->createTokenParser('javascripts', 'js/*.js'),
|
||
|
$this->createTokenParser('stylesheets', 'css/*.css'),
|
||
|
$this->createTokenParser('image', 'images/*', true),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
public function getNodeVisitors()
|
||
|
{
|
||
|
return array(
|
||
|
new AsseticNodeVisitor($this->templateNameParser, $this->enabledBundles),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
public function getGlobals()
|
||
|
{
|
||
|
$globals = parent::getGlobals();
|
||
|
$globals['assetic']['use_controller'] = $this->useController;
|
||
|
|
||
|
return $globals;
|
||
|
}
|
||
|
|
||
|
private function createTokenParser($tag, $output, $single = false)
|
||
|
{
|
||
|
$tokenParser = new AsseticTokenParser($this->factory, $tag, $output, $single, array('package'));
|
||
|
$tokenParser->setTemplateNameParser($this->templateNameParser);
|
||
|
$tokenParser->setEnabledBundles($this->enabledBundles);
|
||
|
|
||
|
return $tokenParser;
|
||
|
}
|
||
|
}
|