feature #2119 deprecated some more methods on Twig_Environment (fabpot)

This PR was merged into the 1.x branch.

Discussion
----------

deprecated some more methods on Twig_Environment

These methods are sometimes misused (#2020) when called from a template context (Twig_Template::getEnv() has been deprecated as well, but #2106 might re-introduce it).

Anyway, Twig_Environment should not act as a container, so, being able to change the defaults make sense, but retrieving them probably not.

Commits
-------

e548cbe deprecated some more methods on Twig_Environment
This commit is contained in:
Fabien Potencier
2016-09-18 19:03:09 -07:00
2 changed files with 28 additions and 3 deletions
+1
View File
@@ -1,5 +1,6 @@
* 1.25.0 (2016-XX-XX)
* deprecated Twig_Environment::getLexer(), Twig_Environment::getParser(), Twig_Environment::getCompiler()
* deprecated Twig_Compiler::getFilename()
* 1.24.2 (2016-09-01)
+27 -3
View File
@@ -546,9 +546,13 @@ class Twig_Environment
* Gets the Lexer instance.
*
* @return Twig_LexerInterface A Twig_LexerInterface instance
*
* @deprecated since 1.25 (to be removed in 2.0)
*/
public function getLexer()
{
@trigger_error(sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), E_USER_DEPRECATED);
if (null === $this->lexer) {
$this->lexer = new Twig_Lexer($this);
}
@@ -578,16 +582,24 @@ class Twig_Environment
*/
public function tokenize($source, $name = null)
{
return $this->getLexer()->tokenize($source, $name);
if (null === $this->lexer) {
$this->lexer = new Twig_Lexer($this);
}
return $this->lexer->tokenize($source, $name);
}
/**
* Gets the Parser instance.
*
* @return Twig_ParserInterface A Twig_ParserInterface instance
*
* @deprecated since 1.25 (to be removed in 2.0)
*/
public function getParser()
{
@trigger_error(sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), E_USER_DEPRECATED);
if (null === $this->parser) {
$this->parser = new Twig_Parser($this);
}
@@ -616,16 +628,24 @@ class Twig_Environment
*/
public function parse(Twig_TokenStream $stream)
{
return $this->getParser()->parse($stream);
if (null === $this->parser) {
$this->parser = new Twig_Parser($this);
}
return $this->parser->parse($stream);
}
/**
* Gets the Compiler instance.
*
* @return Twig_CompilerInterface A Twig_CompilerInterface instance
*
* @deprecated since 1.25 (to be removed in 2.0)
*/
public function getCompiler()
{
@trigger_error(sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), E_USER_DEPRECATED);
if (null === $this->compiler) {
$this->compiler = new Twig_Compiler($this);
}
@@ -652,7 +672,11 @@ class Twig_Environment
*/
public function compile(Twig_NodeInterface $node)
{
return $this->getCompiler()->compile($node)->getSource();
if (null === $this->compiler) {
$this->compiler = new Twig_Compiler($this);
}
return $this->compiler->compile($node)->getSource();
}
/**