You are here

class HamlHelperNode in Sassy 7

HamlHelperNode class. Represent a helper in the Haml source. The helper is run on the output from child nodes when the node is rendered. @package PHamlP @subpackage Haml.tree

Hierarchy

Expanded class hierarchy of HamlHelperNode

File

phamlp/haml/tree/HamlHelperNode.php, line 19

View source
class HamlHelperNode extends HamlNode {
  const MATCH = '/(.*?)(\\w+)\\((.+?)\\)(?:\\s+(.*))?$/';
  const PRE = 1;
  const NAME = 2;
  const ARGS = 3;
  const BLOCK = 4;

  /**
   * @var string the helper class name
   */
  private $class;

  /**
   * @var string helper method name
   */
  private $pre;

  /**
   * @var string helper method name
   */
  private $name;

  /**
   * @var string helper method arguments
   */
  private $args;

  /**
   * HamlFilterNode constructor.
   * Sets the filter.
   * @param string helper class.
   * @param string helper call.
   * @return HamlHelperNode
   */
  public function __construct($class, $pre, $name, $args, $parent) {
    $this->class = $class;
    $this->pre = $pre;
    $this->name = $name;
    $this->args = $args;
    $this->parent = $parent;
    $this->root = $parent->root;
    $parent->children[] = $this;
  }

  /**
   * Render this node.
   * The filter is run on the content of child nodes before being returned.
   * @return string the rendered node
   */
  public function render() {
    $children = '';
    foreach ($this->children as $child) {
      $children .= trim($child
        ->render());
    }

    // foreach
    $output = '<?php ' . (empty($this->pre) ? 'echo' : $this->pre) . " {$this->class}::{$this->name}('{$children}',{$this->args}); ?>";
    return $this
      ->debug($output);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
HamlHelperNode::$args private property *
HamlHelperNode::$class private property *
HamlHelperNode::$name private property *
HamlHelperNode::$pre private property *
HamlHelperNode::ARGS constant
HamlHelperNode::BLOCK constant
HamlHelperNode::MATCH constant
HamlHelperNode::NAME constant
HamlHelperNode::PRE constant
HamlHelperNode::render public function * Render this node. * The filter is run on the content of child nodes before being returned. * Overrides HamlNode::render
HamlHelperNode::__construct public function * HamlFilterNode constructor. * Sets the filter. * Overrides HamlNode::__construct
HamlNode::$children protected property *
HamlNode::$content public property *
HamlNode::$output protected property *
HamlNode::$parent protected property *
HamlNode::$root protected property *
HamlNode::$showOutput public property *
HamlNode::$showSource public property *
HamlNode::$token public property *
HamlNode::$_o private property *
HamlNode::$_r private property *
HamlNode::debug protected function
HamlNode::getChildren public function * Returns the node's children *
HamlNode::getContent public function * Returns the node's content and that of its child nodes *
HamlNode::getFilename private function * Returns the filename for this node *
HamlNode::getLastChild public function * Returns the last child node of this node. *
HamlNode::getLevel private function * Returns the indent level of this node. *
HamlNode::getLine private function * Returns the source for this node *
HamlNode::getOptions public function * Returns the options. *
HamlNode::getParent public function * Returns the node's parent *
HamlNode::getRenderer public function * Returns the renderer. *
HamlNode::getSource private function * Returns the source for this node *
HamlNode::hasChildren public function * Returns a value indicating if this node has children *
HamlNode::hasParent public function * Return a value indicating if this node has a parent *
HamlNode::setLevel private function * Sets the indent level of this node. * Used during rendering to give correct indentation. *
HamlNode::showSource protected function * Adds a comment with source debug information for the current line to the output. * The debug information is: * + source file (relative to the application path) * + line number * + indent level * + source code *
HamlNode::__get public function * Getter. *
HamlNode::__set public function * Setter. *