Latte\Helpers::removeFilter PHP Method

removeFilter() public static method

public static removeFilter ( &$modifier, $filter ) : boolean
return boolean
    public static function removeFilter(&$modifier, $filter)
    {
        $modifier = preg_replace('#\\|(' . $filter . ')\\s?(?=\\||\\z)#i', '', $modifier, -1, $found);
        return (bool) $found;
    }

Usage Example

Beispiel #1
0
 /**
  * {foreach ...}
  */
 public function macroEndForeach(MacroNode $node, PhpWriter $writer)
 {
     $noCheck = Helpers::removeFilter($node->modifiers, 'nocheck');
     $noIterator = Helpers::removeFilter($node->modifiers, 'noiterator');
     if ($node->modifiers) {
         throw new CompileException('Only modifiers |noiterator and |nocheck are allowed here.');
     }
     $node->openingCode = '<?php $iterations = 0; ';
     $args = $writer->formatArgs();
     if (!$noCheck) {
         preg_match('#.+\\s+as\\s*\\$(\\w+)(?:\\s*=>\\s*\\$(\\w+))?#i', $args, $m);
         for ($i = 1; $i < count($m); $i++) {
             $this->overwrittenVars[$m[$i]][] = $node->startLine;
         }
     }
     if (!$noIterator && preg_match('#\\W(\\$iterator|include|require|get_defined_vars)\\W#', $this->getCompiler()->expandTokens($node->content))) {
         $node->openingCode .= 'foreach ($iterator = $this->global->its[] = new LR\\CachingIterator(' . preg_replace('#(.*)\\s+as\\s+#i', '$1) as ', $args, 1) . ') { ?>';
         $node->closingCode = '<?php $iterations++; } array_pop($this->global->its); $iterator = end($this->global->its); ?>';
     } else {
         $node->openingCode .= 'foreach (' . $args . ') { ?>';
         $node->closingCode = '<?php $iterations++; } ?>';
     }
 }
All Usage Examples Of Latte\Helpers::removeFilter