shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

Constant.php (1176B)


      1 <?php
      2 
      3 /*
      4  * This file is part of Twig.
      5  *
      6  * (c) 2011 Fabien Potencier
      7  *
      8  * For the full copyright and license information, please view the LICENSE
      9  * file that was distributed with this source code.
     10  */
     11 
     12 /**
     13  * Checks if a variable is the exact same value as a constant.
     14  *
     15  * <pre>
     16  *  {% if post.status is constant('Post::PUBLISHED') %}
     17  *    the status attribute is exactly the same as Post::PUBLISHED
     18  *  {% endif %}
     19  * </pre>
     20  *
     21  * @author Fabien Potencier <fabien@symfony.com>
     22  */
     23 class Twig_Node_Expression_Test_Constant extends Twig_Node_Expression_Test
     24 {
     25     public function compile(Twig_Compiler $compiler)
     26     {
     27         $compiler
     28             ->raw('(')
     29             ->subcompile($this->getNode('node'))
     30             ->raw(' === constant(')
     31         ;
     32 
     33         if ($this->getNode('arguments')->hasNode(1)) {
     34             $compiler
     35                 ->raw('get_class(')
     36                 ->subcompile($this->getNode('arguments')->getNode(1))
     37                 ->raw(')."::".')
     38             ;
     39         }
     40 
     41         $compiler
     42             ->subcompile($this->getNode('arguments')->getNode(0))
     43             ->raw('))')
     44         ;
     45     }
     46 }