/** * {snippet ...} */ public function macroOldSnippet($content) { $args = array(''); if ($snippet = LatteFilter::fetchToken($content)) { // [name [,]] [tag] $args[] = LatteFilter::formatString($snippet); } if ($content) { $args[] = LatteFilter::formatString($content); } return implode(', ', $args); }
/** * {assign ...} */ public function macroAssign($content, $modifiers) { if (!$content) { throw new InvalidStateException("Missing arguments in {var} or {assign} on line {$this->filter->line}."); } if (strpos($content, '=>') === FALSE) { // back compatibility return '$' . ltrim(LatteFilter::fetchToken($content), '$') . ' = ' . LatteFilter::formatModifiers($content === '' ? 'NULL' : $content, $modifiers); } return 'extract(' . LatteFilter::formatArray($content) . ')'; }
private static function fetchNameAndModifiers($code) { $name = LatteFilter::fetchToken($code); $modifiers = LatteFilter::formatArray($code); $name = String::startsWith($name, '$') ? $name : "'{$name}'"; $modifiers = $modifiers ? $modifiers : "array()"; return array($name, $modifiers); }