diff --git a/CHANGELOG.md b/CHANGELOG.md index a876485f2..9e0ce24af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,8 +3,7 @@ Changelog can be found here: http://octobercms.com/changelog ### Breaking changes Laravel 5.5 - Database queries now return Collections instead of arrays! +- Twig has been updated to v2.0 - `pluck()` should be renamed to `value()` - `getRelatedIds()` called from BelongsToMany is renamed to `allRelatedIds()` - `Mail::pretend()` has been removed, use `Config::set('mail.driver', 'log');` instead - - diff --git a/modules/cms/twig/ComponentNode.php b/modules/cms/twig/ComponentNode.php index a7c0c11c8..db3ae85da 100644 --- a/modules/cms/twig/ComponentNode.php +++ b/modules/cms/twig/ComponentNode.php @@ -2,7 +2,6 @@ use Twig_Node; use Twig_Compiler; -use Twig_NodeInterface; /** * Represents a component node @@ -12,7 +11,7 @@ use Twig_NodeInterface; */ class ComponentNode extends Twig_Node { - public function __construct(Twig_NodeInterface $nodes, $paramNames, $lineno, $tag = 'component') + public function __construct(Twig_Node $nodes, $paramNames, $lineno, $tag = 'component') { parent::__construct(['nodes' => $nodes], ['names' => $paramNames], $lineno, $tag); } @@ -35,7 +34,7 @@ class ComponentNode extends Twig_Node } $compiler - ->write("echo \$this->env->getExtension('CMS')->componentFunction(") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->componentFunction(") ->subcompile($this->getNode('nodes')->getNode(0)) ->write(", \$context['__cms_component_params']") ->write(");\n") diff --git a/modules/cms/twig/ComponentTokenParser.php b/modules/cms/twig/ComponentTokenParser.php index e40161003..fd7720435 100644 --- a/modules/cms/twig/ComponentTokenParser.php +++ b/modules/cms/twig/ComponentTokenParser.php @@ -19,7 +19,7 @@ class ComponentTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/ContentNode.php b/modules/cms/twig/ContentNode.php index 61d02b677..280ea2ce2 100644 --- a/modules/cms/twig/ContentNode.php +++ b/modules/cms/twig/ContentNode.php @@ -2,7 +2,6 @@ use Twig_Node; use Twig_Compiler; -use Twig_NodeInterface; /** * Represents a content node @@ -12,7 +11,7 @@ use Twig_NodeInterface; */ class ContentNode extends Twig_Node { - public function __construct(Twig_NodeInterface $nodes, $paramNames, $lineno, $tag = 'content') + public function __construct(Twig_Node $nodes, $paramNames, $lineno, $tag = 'content') { parent::__construct(['nodes' => $nodes], ['names' => $paramNames], $lineno, $tag); } @@ -37,7 +36,7 @@ class ContentNode extends Twig_Node } $compiler - ->write("echo \$this->env->getExtension('CMS')->contentFunction(") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->contentFunction(") ->subcompile($this->getNode('nodes')->getNode(0)) ->write(", \$context['__cms_content_params']") ->write(");\n") diff --git a/modules/cms/twig/ContentTokenParser.php b/modules/cms/twig/ContentTokenParser.php index 207488ff5..9ca952123 100644 --- a/modules/cms/twig/ContentTokenParser.php +++ b/modules/cms/twig/ContentTokenParser.php @@ -23,7 +23,7 @@ class ContentTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/DefaultTokenParser.php b/modules/cms/twig/DefaultTokenParser.php index 87c90cfb0..8a1f8288e 100644 --- a/modules/cms/twig/DefaultTokenParser.php +++ b/modules/cms/twig/DefaultTokenParser.php @@ -20,7 +20,7 @@ class DefaultTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/FlashNode.php b/modules/cms/twig/FlashNode.php index 42b036c26..1658b8bc6 100644 --- a/modules/cms/twig/FlashNode.php +++ b/modules/cms/twig/FlashNode.php @@ -2,7 +2,6 @@ use Twig_Node; use Twig_Compiler; -use Twig_NodeInterface; use Twig_Node_Expression; /** @@ -13,7 +12,7 @@ use Twig_Node_Expression; */ class FlashNode extends Twig_Node { - public function __construct($name, Twig_NodeInterface $body, $lineno, $tag = 'flash') + public function __construct($name, Twig_Node $body, $lineno, $tag = 'flash') { parent::__construct(['body' => $body], ['name' => $name], $lineno, $tag); } diff --git a/modules/cms/twig/FlashTokenParser.php b/modules/cms/twig/FlashTokenParser.php index ced972b5e..aca671b77 100644 --- a/modules/cms/twig/FlashTokenParser.php +++ b/modules/cms/twig/FlashTokenParser.php @@ -18,7 +18,7 @@ class FlashTokenParser extends Twig_TokenParser * * @param Twig_Token $token A Twig_Token instance * - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/FrameworkTokenParser.php b/modules/cms/twig/FrameworkTokenParser.php index 0e51b2fa1..192b3c011 100644 --- a/modules/cms/twig/FrameworkTokenParser.php +++ b/modules/cms/twig/FrameworkTokenParser.php @@ -17,7 +17,7 @@ class FrameworkTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/Loader.php b/modules/cms/twig/Loader.php index 1d879a8b9..c74450c8c 100644 --- a/modules/cms/twig/Loader.php +++ b/modules/cms/twig/Loader.php @@ -1,6 +1,7 @@ validateCmsObject($name)) { - return parent::getSource($name); + return parent::getSourceContext($name); } $content = $this->obj->getTwigContent(); @@ -52,7 +53,7 @@ class Loader extends LoaderBase implements Twig_LoaderInterface Event::fire('cms.template.processTwigContent', [$this->obj, $dataHolder]); - return $dataHolder->content; + return new Twig_Source($dataHolder->content, $name); } /** diff --git a/modules/cms/twig/PageNode.php b/modules/cms/twig/PageNode.php index 64338f120..39ef0a81b 100644 --- a/modules/cms/twig/PageNode.php +++ b/modules/cms/twig/PageNode.php @@ -25,7 +25,7 @@ class PageNode extends Twig_Node { $compiler ->addDebugInfo($this) - ->write("echo \$this->env->getExtension('CMS')->pageFunction();\n") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->pageFunction();\n") ; } } diff --git a/modules/cms/twig/PageTokenParser.php b/modules/cms/twig/PageTokenParser.php index 17fe8852b..056aac58d 100644 --- a/modules/cms/twig/PageTokenParser.php +++ b/modules/cms/twig/PageTokenParser.php @@ -17,7 +17,7 @@ class PageTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/PartialNode.php b/modules/cms/twig/PartialNode.php index e2b779b4b..baf9778bb 100644 --- a/modules/cms/twig/PartialNode.php +++ b/modules/cms/twig/PartialNode.php @@ -2,7 +2,6 @@ use Twig_Node; use Twig_Compiler; -use Twig_NodeInterface; /** * Represents a partial node @@ -12,7 +11,7 @@ use Twig_NodeInterface; */ class PartialNode extends Twig_Node { - public function __construct(Twig_NodeInterface $nodes, $paramNames, $lineno, $tag = 'partial') + public function __construct(Twig_Node $nodes, $paramNames, $lineno, $tag = 'partial') { parent::__construct(['nodes' => $nodes], ['names' => $paramNames], $lineno, $tag); } @@ -35,7 +34,7 @@ class PartialNode extends Twig_Node } $compiler - ->write("echo \$this->env->getExtension('CMS')->partialFunction(") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->partialFunction(") ->subcompile($this->getNode('nodes')->getNode(0)) ->write(", \$context['__cms_partial_params']") ->write(");\n") diff --git a/modules/cms/twig/PartialTokenParser.php b/modules/cms/twig/PartialTokenParser.php index 905f5388c..3a9c068d2 100644 --- a/modules/cms/twig/PartialTokenParser.php +++ b/modules/cms/twig/PartialTokenParser.php @@ -23,7 +23,7 @@ class PartialTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/PlaceholderNode.php b/modules/cms/twig/PlaceholderNode.php index 650f147c7..c1697a36c 100644 --- a/modules/cms/twig/PlaceholderNode.php +++ b/modules/cms/twig/PlaceholderNode.php @@ -2,7 +2,6 @@ use Twig_Node; use Twig_Compiler; -use Twig_NodeInterface; /** * Represents a placeholder node @@ -53,10 +52,10 @@ class PlaceholderNode extends Twig_Node $compiler->addDebugInfo($this); if (!$isText) { - $compiler->write("echo \$this->env->getExtension('CMS')->displayBlock("); + $compiler->write("echo \$this->env->getExtension('Cms\Twig\Extension')->displayBlock("); } else { - $compiler->write("echo twig_escape_filter(\$this->env, \$this->env->getExtension('CMS')->displayBlock("); + $compiler->write("echo twig_escape_filter(\$this->env, \$this->env->getExtension('Cms\Twig\Extension')->displayBlock("); } $compiler diff --git a/modules/cms/twig/PlaceholderTokenParser.php b/modules/cms/twig/PlaceholderTokenParser.php index 3759f15c6..ac372f003 100644 --- a/modules/cms/twig/PlaceholderTokenParser.php +++ b/modules/cms/twig/PlaceholderTokenParser.php @@ -25,7 +25,7 @@ class PlaceholderTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/PutNode.php b/modules/cms/twig/PutNode.php index a48eb5365..c98e38731 100644 --- a/modules/cms/twig/PutNode.php +++ b/modules/cms/twig/PutNode.php @@ -2,7 +2,6 @@ use Twig_Node; use Twig_Compiler; -use Twig_NodeInterface; /** * Represents a put node @@ -12,7 +11,7 @@ use Twig_NodeInterface; */ class PutNode extends Twig_Node { - public function __construct(Twig_NodeInterface $body, $name, $endType, $lineno, $tag = 'put') + public function __construct(Twig_Node $body, $name, $endType, $lineno, $tag = 'put') { parent::__construct(['body' => $body], ['name' => $name, 'endType' => $endType], $lineno, $tag); } @@ -26,7 +25,7 @@ class PutNode extends Twig_Node { $compiler ->addDebugInfo($this) - ->write("echo \$this->env->getExtension('CMS')->startBlock(") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->startBlock(") ->raw("'".$this->getAttribute('name')."'") ->write(");\n") ; @@ -37,7 +36,7 @@ class PutNode extends Twig_Node $compiler ->addDebugInfo($this) - ->write("echo \$this->env->getExtension('CMS')->endBlock(") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->endBlock(") ->raw($isOverwrite ? 'false' : 'true') ->write(");\n") ; diff --git a/modules/cms/twig/PutTokenParser.php b/modules/cms/twig/PutTokenParser.php index 0135a8ff0..f13248522 100644 --- a/modules/cms/twig/PutTokenParser.php +++ b/modules/cms/twig/PutTokenParser.php @@ -26,7 +26,7 @@ class PutTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/ScriptsNode.php b/modules/cms/twig/ScriptsNode.php index b40104c24..72324b6fb 100644 --- a/modules/cms/twig/ScriptsNode.php +++ b/modules/cms/twig/ScriptsNode.php @@ -25,8 +25,8 @@ class ScriptsNode extends Twig_Node { $compiler ->addDebugInfo($this) - ->write("echo \$this->env->getExtension('CMS')->assetsFunction('js');\n") - ->write("echo \$this->env->getExtension('CMS')->displayBlock('scripts');\n") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->assetsFunction('js');\n") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->displayBlock('scripts');\n") ; } } diff --git a/modules/cms/twig/ScriptsTokenParser.php b/modules/cms/twig/ScriptsTokenParser.php index be3794a1f..ac3ab21fb 100644 --- a/modules/cms/twig/ScriptsTokenParser.php +++ b/modules/cms/twig/ScriptsTokenParser.php @@ -17,7 +17,7 @@ class ScriptsTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/cms/twig/StylesNode.php b/modules/cms/twig/StylesNode.php index 3c38a2590..5905d001d 100644 --- a/modules/cms/twig/StylesNode.php +++ b/modules/cms/twig/StylesNode.php @@ -25,8 +25,8 @@ class StylesNode extends Twig_Node { $compiler ->addDebugInfo($this) - ->write("echo \$this->env->getExtension('CMS')->assetsFunction('css');\n") - ->write("echo \$this->env->getExtension('CMS')->displayBlock('styles');\n") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->assetsFunction('css');\n") + ->write("echo \$this->env->getExtension('Cms\Twig\Extension')->displayBlock('styles');\n") ; } } diff --git a/modules/cms/twig/StylesTokenParser.php b/modules/cms/twig/StylesTokenParser.php index 846675025..05621d0b9 100644 --- a/modules/cms/twig/StylesTokenParser.php +++ b/modules/cms/twig/StylesTokenParser.php @@ -17,7 +17,7 @@ class StylesTokenParser extends Twig_TokenParser * Parses a token and returns a node. * * @param Twig_Token $token A Twig_Token instance - * @return Twig_NodeInterface A Twig_NodeInterface instance + * @return Twig_Node A Twig_Node instance */ public function parse(Twig_Token $token) { diff --git a/modules/system/twig/Loader.php b/modules/system/twig/Loader.php index 593e9b90a..eb17d3717 100644 --- a/modules/system/twig/Loader.php +++ b/modules/system/twig/Loader.php @@ -2,6 +2,7 @@ use App; use File; +use Twig_Source; use Twig_LoaderInterface; use Exception; @@ -49,9 +50,9 @@ class Loader implements Twig_LoaderInterface return $this->cache[$name] = $path; } - public function getSource($name) + public function getSourceContext($name) { - return File::get($this->findTemplate($name)); + return new Twig_Source(File::get($this->findTemplate($name)), $name); } public function getCacheKey($name)