Latte\Macros\MacroSet::addMacro PHP Method

addMacro() public method

public addMacro ( $name, $begin, $end = NULL, $attr = NULL, $flags = NULL )
    public function addMacro($name, $begin, $end = NULL, $attr = NULL, $flags = NULL)
    {
        if (!$begin && !$end && !$attr) {
            throw new \InvalidArgumentException("At least one argument must be specified for macro '{$name}'.");
        }
        foreach ([$begin, $end, $attr] as $arg) {
            if ($arg && !is_string($arg)) {
                Latte\Helpers::checkCallback($arg);
            }
        }
        $this->macros[$name] = [$begin, $end, $attr];
        $this->compiler->addMacro($name, $this, $flags);
        return $this;
    }

Usage Example

Beispiel #1
0
 /**
  * Register in base presenter.
  * When registered it will provide url for assets belonging to 
  * compiler extension class which has implemented IAssetsProvider.
  * 
  * @param Template $template
  * @param string $name Name of the macro used in templates.
  * @param string $extensionClass Compiler extension class
  */
 public function register(Template $template, $name, $extensionClass)
 {
     $latte = $template->getLatte();
     $template->_echo511_assetlocator = $this->extensionsData;
     $set = new MacroSet($latte->getCompiler());
     $set->addMacro($name, function ($node, $writer) use($extensionClass) {
         return $writer->write('echo $_echo511_assetlocator->getFilesystem(\'' . $extensionClass . '\')->getUrl(\'' . trim($node->args, '"\'') . '\');');
     });
 }
All Usage Examples Of Latte\Macros\MacroSet::addMacro