Merge remote branch 'kriswallsmith/assetic/php-templating'

* kriswallsmith/assetic/php-templating:
  [AsseticBundle] finished and enabled php templating support
This commit is contained in:
Fabien Potencier 2011-03-05 15:25:11 +01:00
commit fe0ef667c8
10 changed files with 89 additions and 11 deletions

View File

@ -37,7 +37,7 @@ class AsseticExtension extends Extension
$loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
$loader->load('assetic.xml');
$loader->load('templating_twig.xml');
// $loader->load('templating_php.xml'); // not ready yet
$loader->load('templating_php.xml');
$config = self::processConfigs($configs, $container->getParameter('kernel.debug'), array_keys($container->getParameter('kernel.bundles')));

View File

@ -0,0 +1,81 @@
<?php
/*
* This file is part of the Symfony framework.
*
* (c) Fabien Potencier <fabien.potencier@symfony-project.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\Factory\Loader;
use Assetic\Factory\Loader\BasePhpFormulaLoader;
/**
* Loads formulae from Symfony2 PHP templates.
*
* @author Kris Wallsmith <kris.wallsmith@symfony-project.com>
*/
class AsseticHelperFormulaLoader extends BasePhpFormulaLoader
{
protected function registerPrototypes()
{
return array(
'$view[\'assetic\']->assets(*)' => array(),
'$view[\'assetic\']->javascripts(*)' => array('output' => 'js/*.js'),
'$view[\'assetic\']->stylesheets(*)' => array('output' => 'css/*.css'),
'$view["assetic"]->assets(*)' => array(),
'$view["assetic"]->javascripts(*)' => array('output' => 'js/*.js'),
'$view["assetic"]->stylesheets(*)' => array('output' => 'css/*.css'),
'$view->get(\'assetic\')->assets(*)' => array(),
'$view->get(\'assetic\')->javascripts(*)' => array('output' => 'js/*.js'),
'$view->get(\'assetic\')->stylesheets(*)' => array('output' => 'css/*.css'),
'$view->get("assetic")->assets(*)' => array(),
'$view->get("assetic")->javascripts(*)' => array('output' => 'js/*.js'),
'$view->get("assetic")->stylesheets(*)' => array('output' => 'css/*.css'),
);
}
protected function registerSetupCode()
{
return <<<'EOF'
class Helper
{
public function assets()
{
global $_call;
$_call = func_get_args();
}
public function javascripts()
{
global $_call;
$_call = func_get_args();
}
public function stylesheets()
{
global $_call;
$_call = func_get_args();
}
}
class View extends ArrayObject
{
public function __construct(Helper $helper)
{
parent::__construct(array('assetic' => $helper));
}
public function get()
{
return $this['assetic'];
}
}
$view = new View(new Helper());
EOF;
}
}

View File

@ -9,7 +9,7 @@
* with this source code in the file LICENSE.
*/
namespace Symfony\Bundle\AsseticBundle\Factory;
namespace Symfony\Bundle\AsseticBundle\Factory\Resource;
use Assetic\Factory\Resource\DirectoryResource as BaseDirectoryResource;
use Symfony\Component\Templating\Loader\LoaderInterface;

View File

@ -9,7 +9,7 @@
* with this source code in the file LICENSE.
*/
namespace Symfony\Bundle\AsseticBundle\Factory;
namespace Symfony\Bundle\AsseticBundle\Factory\Resource;
use Symfony\Component\Templating\Loader\LoaderInterface;

View File

@ -9,7 +9,7 @@
* with this source code in the file LICENSE.
*/
namespace Symfony\Bundle\AsseticBundle\Factory;
namespace Symfony\Bundle\AsseticBundle\Factory\Resource;
use Assetic\Factory\Resource\ResourceInterface;
use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference;

View File

@ -11,7 +11,7 @@
<parameter key="assetic.cached_formula_loader.class">Assetic\Factory\Loader\CachedFormulaLoader</parameter>
<parameter key="assetic.config_cache.class">Assetic\Cache\ConfigCache</parameter>
<parameter key="assetic.asset_manager_cache_warmer.class">Symfony\Bundle\AsseticBundle\CacheWarmer\AssetManagerCacheWarmer</parameter>
<parameter key="assetic.directory_resource.class">Symfony\Bundle\AsseticBundle\Factory\DirectoryResource</parameter>
<parameter key="assetic.directory_resource.class">Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource</parameter>
<parameter key="assetic.filter.coffee.class">Assetic\Filter\CoffeeScriptFilter</parameter>
<parameter key="assetic.filter.cssrewrite.class">Assetic\Filter\CssRewriteFilter</parameter>

View File

@ -6,8 +6,7 @@
<parameters>
<parameter key="assetic.helper.class">Symfony\Bundle\AsseticBundle\Templating\AsseticHelper</parameter>
<parameter key="assetic.php_formula_loader.class">Symfony\Bundle\AsseticBundle\Templating\FormulaLoader</parameter>
<parameter key="assetic.php_directory_resource.class"></parameter>
<parameter key="assetic.php_formula_loader.class">Symfony\Bundle\AsseticBundle\Factory\Loader\AsseticHelperFormulaLoader</parameter>
</parameters>
<services>
@ -28,6 +27,7 @@
</service>
<service id="assetic.php_formula_loader.real" class="%assetic.php_formula_loader.class%" public="false">
<tag name="assetic.templating.php" />
<argument type="service" id="assetic.asset_factory" />
</service>
</services>
</container>

View File

@ -8,7 +8,6 @@
<parameter key="assetic.twig_extension.dynamic.class">Symfony\Bundle\AsseticBundle\Twig\DynamicExtension</parameter>
<parameter key="assetic.twig_extension.static.class">Symfony\Bundle\AsseticBundle\Twig\StaticExtension</parameter>
<parameter key="assetic.twig_formula_loader.class">Assetic\Extension\Twig\TwigFormulaLoader</parameter>
<parameter key="assetic.twig_directory_resource.class"></parameter>
</parameters>
<services>

View File

@ -90,8 +90,6 @@ class FunctionalTest extends \PHPUnit_Framework_TestCase
public function testPhpRenderDebug()
{
$this->markTestIncomplete('PHP templating is not ready yet.');
$kernel = new TestKernel('test', true);
$kernel->boot();
$container = $kernel->getContainer();

View File

@ -6,7 +6,7 @@ framework:
secret: xxxxxxxxxx
router: { resource: "%kernel.root_dir%/config/routing.yml" }
validation: { enabled: true, annotations: true }
templating: { engines: ['twig'] }
templating: { engines: ['twig', 'php'] }
session:
default_locale: en
lifetime: 3600