minor #24863 [Bridge\Twig] Lazy-load deps (nicolas-grekas)
This PR was merged into the 3.4 branch.
Discussion
----------
[Bridge\Twig] Lazy-load deps
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Spotted while benching a HelloWorld and comparing v3.3 to v4.0.
At this micro-bench level, even registering one more twig extension makes a difference (here, it's `TranslationExtension`, after #24358)
Commits
-------
3fc766ff4b
[Bridge\Twig] Lazy-load deps
This commit is contained in:
commit
850bb2d20a
@ -32,7 +32,7 @@ class DumpExtension extends AbstractExtension
|
||||
public function __construct(ClonerInterface $cloner, HtmlDumper $dumper = null)
|
||||
{
|
||||
$this->cloner = $cloner;
|
||||
$this->dumper = $dumper ?: new HtmlDumper();
|
||||
$this->dumper = $dumper;
|
||||
}
|
||||
|
||||
public function getFunctions()
|
||||
@ -73,6 +73,7 @@ class DumpExtension extends AbstractExtension
|
||||
}
|
||||
|
||||
$dump = fopen('php://memory', 'r+b');
|
||||
$this->dumper = $this->dumper ?: new HtmlDumper();
|
||||
$this->dumper->setCharset($env->getCharset());
|
||||
|
||||
foreach ($vars as $value) {
|
||||
|
@ -34,10 +34,6 @@ class TranslationExtension extends AbstractExtension
|
||||
|
||||
public function __construct(TranslatorInterface $translator = null, NodeVisitorInterface $translationNodeVisitor = null)
|
||||
{
|
||||
if (!$translationNodeVisitor) {
|
||||
$translationNodeVisitor = new TranslationNodeVisitor();
|
||||
}
|
||||
|
||||
$this->translator = $translator;
|
||||
$this->translationNodeVisitor = $translationNodeVisitor;
|
||||
}
|
||||
@ -84,12 +80,12 @@ class TranslationExtension extends AbstractExtension
|
||||
*/
|
||||
public function getNodeVisitors()
|
||||
{
|
||||
return array($this->translationNodeVisitor, new TranslationDefaultDomainNodeVisitor());
|
||||
return array($this->getTranslationNodeVisitor(), new TranslationDefaultDomainNodeVisitor());
|
||||
}
|
||||
|
||||
public function getTranslationNodeVisitor()
|
||||
{
|
||||
return $this->translationNodeVisitor;
|
||||
return $this->translationNodeVisitor ?: $this->translationNodeVisitor = new TranslationNodeVisitor();
|
||||
}
|
||||
|
||||
public function trans($message, array $arguments = array(), $domain = null, $locale = null)
|
||||
|
Reference in New Issue
Block a user