• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP Twig_NodeInterface类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中Twig_NodeInterface的典型用法代码示例。如果您正苦于以下问题:PHP Twig_NodeInterface类的具体用法?PHP Twig_NodeInterface怎么用?PHP Twig_NodeInterface使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Twig_NodeInterface类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: enterNode

 /**
  * {@inheritdoc}
  */
 public function enterNode(Twig_NodeInterface $node, Twig_Environment $env)
 {
     if ($node instanceof Twig_Node_Expression_Name) {
         print $node->getAttribute('name') . "\n";
     }
     return $node;
 }
开发者ID:hmmbug,项目名称:unbindery,代码行数:10,代码来源:VariableAnalyzer.php


示例2: leaveNode

 function leaveNode(Twig_NodeInterface $node, Twig_Environment $env)
 {
     if ($node instanceof Twig_Node_Print) {
         // make sure that every {{ }} printed object is handled as a TFD_Node_Render node (aka autorender)
         if (!$node->getNode('expr') instanceof Twig_Node_Expression_Function) {
             if ($env->isAutoRender()) {
                 $targetNode = $node->getNode('expr');
                 if ($targetNode instanceof Twig_Node_Expression_Name) {
                     $targetNode->setAttribute('always_defined', TRUE);
                 }
                 if (!$targetNode instanceof Twig_Node_Expression_MethodCall) {
                     $node = new TFD_Node_Render($targetNode, $node->getLine(), $node->getNodeTag());
                 }
             }
         } elseif ($node->getNode('expr') instanceof Twig_Node_Expression_Function) {
             $targetNode = $node->getNode('expr');
             if ($targetNode->getAttribute('name') == 'hide') {
                 $targetNode = $this->castObject('TFD_Node_Expression_Nocall', $targetNode);
                 $targetNode->setAttribute('always_defined', TRUE);
                 $node = new TFD_Node_Hide($targetNode, $node->getLine(), $node->getNodeTag());
             }
         }
     }
     return $node;
 }
开发者ID:davyrolink,项目名称:TFD7,代码行数:25,代码来源:NodeVisitor.php


示例3: enterNode

 /**
  * Called before child nodes are visited.
  *
  * @param Twig_NodeInterface $node The node to visit
  * @param Twig_Environment   $env  The Twig environment instance
  *
  * @param Twig_NodeInterface The modified node
  */
 public function enterNode(Twig_NodeInterface $node, Twig_Environment $env)
 {
     if ($node instanceof Twig_Node_Module) {
         $this->inAModule = true;
         $this->tags = array();
         $this->filters = array();
         $this->functions = array();
         return $node;
     } elseif ($this->inAModule) {
         // look for tags
         if ($node->getNodeTag()) {
             $this->tags[] = $node->getNodeTag();
         }
         // look for filters
         if ($node instanceof Twig_Node_Expression_Filter) {
             $this->filters[] = $node->getNode('filter')->getAttribute('value');
         }
         // look for functions
         if ($node instanceof Twig_Node_Expression_Function) {
             $this->functions[] = $node->getAttribute('name');
         }
         // wrap print to check __toString() calls
         if ($node instanceof Twig_Node_Print) {
             return new Twig_Node_SandboxedPrint($node->getNode('expr'), $node->getLine(), $node->getNodeTag());
         }
     }
     return $node;
 }
开发者ID:bigjoevtrj,项目名称:codeigniter-bootstrap,代码行数:36,代码来源:Sandbox.php


示例4: enterNode

 /**
  * Called before child nodes are visited.
  *
  * @param Twig_NodeInterface $node The node to visit
  * @param Twig_Environment   $env  The Twig environment instance
  *
  * @param Twig_NodeInterface The modified node
  */
 public function enterNode(Twig_NodeInterface $node, Twig_Environment $env)
 {
     if ($node instanceof Twig_Node_Module) {
         $this->inAModule = true;
         $this->tags = array();
         $this->filters = array();
         return $node;
     } elseif ($this->inAModule) {
         // look for tags
         if ($node->getNodeTag()) {
             $this->tags[] = $node->getNodeTag();
         }
         // look for filters
         if ($node instanceof Twig_Node_Expression_Filter) {
             for ($i = 0; $i < count($node->filters); $i += 2) {
                 $this->filters[] = $node->filters->{$i}['value'];
             }
         }
         // look for simple print statements ({{ article }})
         if ($node instanceof Twig_Node_Print && $node->expr instanceof Twig_Node_Expression_Name) {
             return new Twig_Node_SandboxedPrint($node);
         }
     }
     return $node;
 }
开发者ID:BGCX067,项目名称:fajr-svn-to-git,代码行数:33,代码来源:Sandbox.php


示例5: leaveNode

 public function leaveNode(\Twig_NodeInterface $node, \Twig_Environment $env)
 {
     if ($node instanceof \Twig_Node_Expression_Binary_Concat && ($left = $node->getNode('left')) instanceof \Twig_Node_Expression_Constant && ($right = $node->getNode('right')) instanceof \Twig_Node_Expression_Constant) {
         return new \Twig_Node_Expression_Constant($left->getAttribute('value') . $right->getAttribute('value'), $left->getLine());
     }
     return $node;
 }
开发者ID:pixel-cookers,项目名称:JMSTranslationBundle,代码行数:7,代码来源:NormalizingNodeVisitor.php


示例6: enterNode

 /**
  * {@inheritdoc}
  */
 public function enterNode(\Twig_NodeInterface $node, \Twig_Environment $env)
 {
     if ($node instanceof \Twig_Node_Expression_Function && 'constant' === $node->getAttribute('name') && 1 === $node->count() && null !== ($resolved = $this->resolve($node))) {
         return $this->resolve($node);
     }
     return $node;
 }
开发者ID:silentroach,项目名称:twig-const-resolver,代码行数:10,代码来源:NodeVisitor.php


示例7: leaveNode

 /**
  * @inheritdoc
  */
 public function leaveNode(\Twig_NodeInterface $node, \Twig_Environment $env)
 {
     if ($node instanceof \Twig_Node_Print) {
         $expression = $node->getNode('expr');
         if ($expression instanceof \Twig_Node_Expression_Function) {
             $name = $expression->getAttribute('name');
             if (preg_match('/^(?:register_.+_asset|use|.+_begin|.+_end)$/', $name)) {
                 return new \Twig_Node_Do($expression, $expression->getLine());
             } elseif (in_array($name, ['begin_page', 'end_page', 'begin_body', 'end_body', 'head'])) {
                 $arguments = [new \Twig_Node_Expression_Constant($name, $expression->getLine())];
                 if ($expression->hasNode('arguments') && $expression->getNode('arguments') !== null) {
                     foreach ($expression->getNode('arguments') as $key => $value) {
                         if (is_int($key)) {
                             $arguments[] = $value;
                         } else {
                             $arguments[$key] = $value;
                         }
                     }
                 }
                 $expression->setNode('arguments', new \Twig_Node($arguments));
                 return new \Twig_Node_Do($expression, $expression->getLine());
             }
         }
     }
     return $node;
 }
开发者ID:LiGhT1EsS,项目名称:yii2,代码行数:29,代码来源:Optimizer.php


示例8: checkNode

    /**
     * Extracts formulae from filter function nodes.
     *
     * @return array|null The formula
     */
    private function checkNode(\Twig_NodeInterface $node, \Twig_Environment $env)
    {
        if ($node instanceof \Twig_Node_Expression_Function) {
            $name = $node->getNode('name')->getAttribute('name');
            if ($env->getFunction($name) instanceof AsseticFilterFunction) {
                $arguments = array();
                foreach ($node->getNode('arguments') as $argument) {
                    $arguments[] = eval('return '.$env->compile($argument).';');
                }

                $invoker = $env->getExtension('assetic')->getFilterInvoker($name);
                $factory = $invoker->getFactory();

                $inputs = isset($arguments[0]) ? (array) $arguments[0] : array();
                $filters = $invoker->getFilters();
                $options = array_replace($invoker->getOptions(), isset($arguments[1]) ? $arguments[1] : array());

                if (!isset($options['name'])) {
                    $options['name'] = $factory->generateAssetName($inputs, $filters);
                }

                return array($inputs, $filters, $options);
            }
        }
    }
开发者ID:nacef,项目名称:symfony,代码行数:30,代码来源:AsseticNodeVisitor.php


示例9: __construct

 public function __construct(Twig_Node_Expression_AssignName $keyTarget, Twig_Node_Expression_AssignName $valueTarget, Twig_Node_Expression $seq, Twig_Node_Expression $ifexpr = null, Twig_NodeInterface $body, Twig_NodeInterface $else = null, $lineno, $tag = null)
 {
     $body->setNode('_for_loop', $this->loop = new Twig_Node_ForLoop($lineno, $tag));
     if (null !== $ifexpr) {
         $body = new Twig_Node_If(new Twig_Node(array($ifexpr, $body)), null, $lineno, $tag);
     }
     parent::__construct(array('key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body, 'else' => $else), array('with_loop' => true, 'ifexpr' => null !== $ifexpr), $lineno, $tag);
 }
开发者ID:carlesgutierrez,项目名称:libreobjet.org,代码行数:8,代码来源:For.php


示例10: leaveNode

 /**
  * Called after child nodes are visited.
  *
  * @param Twig_NodeInterface $node The node to visit
  * @param Twig_Environment   $env  The Twig environment instance
  *
  * @return Twig_NodeInterface The modified node
  */
 public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env)
 {
     if ($node instanceof Twig_Node_Module) {
         $this->inAModule = false;
         $node->setNode('display_start', new Twig_Node(array(new Twig_Node_CheckSecurity($this->filters, $this->tags, $this->functions), $node->getNode('display_start'))));
     }
     return $node;
 }
开发者ID:TheTypoMaster,项目名称:SPHERE-Framework,代码行数:16,代码来源:Sandbox.php


示例11: leaveNode

 public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env)
 {
     if ($node instanceof Twig_Node_Module) {
         $node->setUsedFilters(array_keys($this->filters));
         $node->setUsedTags(array_keys($this->tags));
         $this->inAModule = false;
     }
     return $node;
 }
开发者ID:nmcteam,项目名称:Twig,代码行数:9,代码来源:Sandbox.php


示例12: enterNode

 public function enterNode(\Twig_NodeInterface $node, \Twig_Environment $env)
 {
     if ($this->enabled && $node instanceof \Twig_Node_Expression_Filter) {
         $name = $node->getNode('filter')->getAttribute('value');
         if ('desc' === $name || 'meaning' === $name) {
             return $this->enterNode($node->getNode('node'), $env);
         }
     }
     return $node;
 }
开发者ID:pixel-cookers,项目名称:JMSTranslationBundle,代码行数:10,代码来源:RemovingNodeVisitor.php


示例13: leaveNode

 public function leaveNode(\Twig_NodeInterface $node, \Twig_Environment $env)
 {
     if ($node instanceof TwigJsNode) {
         if ($node->hasAttribute('name')) {
             $this->moduleNode->setAttribute('twig_js_name', $node->getAttribute('name'));
         }
         return false;
     }
     return $node;
 }
开发者ID:raphydev,项目名称:onep,代码行数:10,代码来源:TwigJsNodeVisitor.php


示例14: getAssetUrlNode

 /**
  * Renders the asset URL using Symfony's asset() function.
  */
 protected function getAssetUrlNode(\Twig_NodeInterface $body)
 {
     return new \Twig_Node_Expression_Function(
         new \Twig_Node_Expression_Name('asset', $body->getLine()),
         new \Twig_Node(array(
             new \Twig_Node_Expression_Constant($this->getAttribute('target_url'), $body->getLine()),
         )),
         $body->getLine()
     );
 }
开发者ID:ruudk,项目名称:symfony,代码行数:13,代码来源:StaticNode.php


示例15: enterNode

 /**
  * @param \Twig_NodeInterface $node
  * @param \Twig_Environment $env
  * @return \Twig_NodeInterface
  */
 public function enterNode(\Twig_NodeInterface $node, \Twig_Environment $env)
 {
     $this->stack[] = $node;
     if ($node instanceof TransNode) {
         $id = $node->getNode('body')->getAttribute('data');
         $domain = 'messages';
         if (null !== ($domainNode = $node->getNode('domain'))) {
             $domain = $domainNode->getAttribute('value');
         }
         $message = new Message($id, $domain);
         $message->addSource(new FileSource((string) $this->file, $node->getLine()));
         $this->catalogue->add($message);
     } elseif ($node instanceof \Twig_Node_Expression_Filter) {
         $name = $node->getNode('filter')->getAttribute('value');
         if ('trans' === $name || 'transchoice' === $name) {
             $idNode = $node->getNode('node');
             if (!$idNode instanceof \Twig_Node_Expression_Constant) {
                 return $node;
                 // FIXME: see below
                 //                     throw new \RuntimeException(sprintf('Cannot infer translation id from node "%s". Please refactor to only translate constants.', get_class($idNode)));
             }
             $id = $idNode->getAttribute('value');
             $index = 'trans' === $name ? 1 : 2;
             $domain = 'messages';
             $arguments = $node->getNode('arguments');
             if ($arguments->hasNode($index)) {
                 $argument = $arguments->getNode($index);
                 if (!$argument instanceof \Twig_Node_Expression_Constant) {
                     return $node;
                     // FIXME: Throw exception if there is some way for the user to turn this off
                     //        on a case-by-case basis, similar to @Ignore in PHP
                 }
                 $domain = $argument->getAttribute('value');
             }
             $message = new Message($id, $domain);
             $message->addSource(new FileSource((string) $this->file, $node->getLine()));
             for ($i = count($this->stack) - 2; $i >= 0; $i -= 1) {
                 if (!$this->stack[$i] instanceof \Twig_Node_Expression_Filter) {
                     break;
                 }
                 $name = $this->stack[$i]->getNode('filter')->getAttribute('value');
                 if ('desc' === $name || 'meaning' === $name) {
                     $arguments = $this->stack[$i]->getNode('arguments');
                     if (!$arguments->hasNode(0)) {
                         throw new RuntimeException(sprintf('The "%s" filter requires exactly one argument, the description text.', $name));
                     }
                     $text = $arguments->getNode(0);
                     if (!$text instanceof \Twig_Node_Expression_Constant) {
                         throw new RuntimeException(sprintf('The first argument of the "%s" filter must be a constant expression, such as a string.', $name));
                     }
                     $message->{'set' . $name}($text->getAttribute('value'));
                 } elseif ('trans' === $name) {
                     break;
                 }
             }
             $this->catalogue->add($message);
         }
     }
     return $node;
 }
开发者ID:clytemnestra,项目名称:JMSTranslationBundle,代码行数:65,代码来源:TwigFileExtractor.php


示例16: leaveNode

 /**
  * {@inheritdoc}
  */
 public function leaveNode(\Twig_NodeInterface $node, \Twig_Environment $env)
 {
     if ($node instanceof \Twig_Node_Module) {
         $node->setAttribute(self::CONTEXT_REGIONS, $this->regions);
         $node->setAttribute(self::CONTEXT_INCLUDES, $this->includes);
         $module = new ContentRegionModule($node);
         $this->includes = [];
         $this->regions = [];
         return $module;
     }
     return $node;
 }
开发者ID:umber-io,项目名称:content-region,代码行数:15,代码来源:ContentRegionNodeVisitor.php


示例17: leaveNode

 public function leaveNode(\Twig_NodeInterface $node, \Twig_Environment $env)
 {
     if ($node instanceof \Twig_Node_Module) {
         $this->currentModule = null;
     } elseif ($node instanceof \Twig_Node_Expression_Function) {
         $name = $node->getAttribute('name');
         if ('render_documents' == $name) {
             $this->currentRenderDocuments = null;
         }
     }
     return $node;
 }
开发者ID:carew,项目名称:carew,代码行数:12,代码来源:Paginator.php


示例18: __construct

 public function __construct(Twig_NodeInterface $node, Twig_Node_Expression_Constant $filterName, Twig_NodeInterface $arguments, $lineno, $tag = null)
 {
     $default = new Twig_Node_Expression_Filter($node, new Twig_Node_Expression_Constant('_default', $node->getLine()), $arguments, $node->getLine());
     if ('default' === $filterName->getAttribute('value') && ($node instanceof Twig_Node_Expression_Name || $node instanceof Twig_Node_Expression_GetAttr)) {
         $test = new Twig_Node_Expression_Test_Defined(clone $node, 'defined', new Twig_Node(), $node->getLine());
         $false = count($arguments) ? $arguments->getNode(0) : new Twig_Node_Expression_Constant('', $node->getLine());
         $node = new Twig_Node_Expression_Conditional($test, $default, $false, $node->getLine());
     } else {
         $node = $default;
     }
     parent::__construct($node, $filterName, $arguments, $lineno, $tag);
 }
开发者ID:ceroberoz,项目名称:kurs,代码行数:12,代码来源:Default.php


示例19: __construct

 public function __construct(Twig_NodeInterface $node, $name, Twig_NodeInterface $arguments = null, $lineno)
 {
     parent::__construct(array('node' => $node, 'arguments' => $arguments), array('name' => $name), $lineno);
     // defined is a special case
     if ('defined' === $name) {
         if ($node instanceof Twig_Node_Expression_Name || $node instanceof Twig_Node_Expression_GetAttr) {
             $node->setAttribute('is_defined_test', true);
         } else {
             throw new Twig_Error_Syntax('The "defined" test only works with simple variables', $this->getLine());
         }
     }
 }
开发者ID:ryanhughes,项目名称:Twig,代码行数:12,代码来源:Test.php


示例20: enterNode

 /**
  * {@inheritdoc}
  */
 public function enterNode(\Twig_NodeInterface $node, \Twig_Environment $env)
 {
     if (!$this->enabled) {
         return $node;
     }
     if ($node instanceof \Twig_Node_Expression_Filter && 'trans' === $node->getNode('filter')->getAttribute('value') && $node->getNode('node') instanceof \Twig_Node_Expression_Constant) {
         // extract constant nodes with a trans filter
         $this->messages[] = array($node->getNode('node')->getAttribute('value'), $node->getNode('arguments')->hasNode(1) ? $node->getNode('arguments')->getNode(1)->getAttribute('value') : null);
     } elseif ($node instanceof TransNode) {
         // extract trans nodes
         $this->messages[] = array($node->getNode('body')->getAttribute('data'), $node->getNode('domain')->getAttribute('value'));
     }
     return $node;
 }
开发者ID:usefulthink,项目名称:symfony,代码行数:17,代码来源:TranslationNodeVisitor.php



注:本文中的Twig_NodeInterface类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP Twig_Node_Expression类代码示例发布时间:2022-05-23
下一篇:
PHP Twig_Node类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap