Commit 7e554db2 authored by Fabien Potencier's avatar Fabien Potencier

improved the performance of the Twig loader by not registering a chain loader if not needed

parent c421eab3
...@@ -96,8 +96,8 @@ class TwigServiceProvider implements ServiceProviderInterface ...@@ -96,8 +96,8 @@ class TwigServiceProvider implements ServiceProviderInterface
$app['twig.loader'] = $app->share(function ($app) { $app['twig.loader'] = $app->share(function ($app) {
return new \Twig_Loader_Chain(array( return new \Twig_Loader_Chain(array(
$app['twig.loader.filesystem'],
$app['twig.loader.array'], $app['twig.loader.array'],
$app['twig.loader.filesystem'],
)); ));
}); });
} }
......
...@@ -63,4 +63,18 @@ class TwigServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -63,4 +63,18 @@ class TwigServiceProviderTest extends \PHPUnit_Framework_TestCase
$response = $app->handle($request); $response = $app->handle($request);
$this->assertEquals('foo', $response->getContent()); $this->assertEquals('foo', $response->getContent());
} }
public function testLoaderPriority()
{
$app = new Application();
$app->register(new TwigServiceProvider(), array(
'twig.templates' => array('foo' => 'foo'),
));
$loader = $this->getMock('\Twig_LoaderInterface');
$loader->expects($this->never())->method('getSource');
$app['twig.loader.filesystem'] = $app->share(function ($app) use ($loader) {
return $loader;
});
$this->assertEquals('foo', $app['twig.loader']->getSource('foo'));
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment