You are here

interface EventHandler in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php \Masterminds\HTML5\Parser\EventHandler

Standard events for HTML5.

This is roughly analogous to a SAX2 or expat-style interface. However, it is tuned specifically for HTML5, according to section 8 of the HTML5 specification.

An event handler receives parser events. For a concrete implementation, see DOMTreeBuilder.

Quirks support in the parser is limited to close-in syntax (malformed tags or attributes). Higher order syntax and semantic issues with a document (e.g. mismatched tags, illegal nesting, etc.) are the responsibility of the event handler implementation.

See HTML5 spec section 8.2.4

Hierarchy

Expanded class hierarchy of EventHandler

All classes that implement EventHandler

1 file declares its use of EventHandler
EventStack.php in vendor/masterminds/html5/test/HTML5/Parser/EventStack.php

File

vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php, line 21

Namespace

Masterminds\HTML5\Parser
View source
interface EventHandler {
  const DOCTYPE_NONE = 0;
  const DOCTYPE_PUBLIC = 1;
  const DOCTYPE_SYSTEM = 2;

  /**
   * A doctype declaration.
   *
   * @param string $name
   *            The name of the root element.
   * @param int $idType
   *            One of DOCTYPE_NONE, DOCTYPE_PUBLIC, or DOCTYPE_SYSTEM.
   * @param string $id
   *            The identifier. For DOCTYPE_PUBLIC, this is the public ID. If DOCTYPE_SYSTEM,
   *            then this is a system ID.
   * @param boolean $quirks
   *            Indicates whether the builder should enter quirks mode.
   */
  public function doctype($name, $idType = 0, $id = null, $quirks = false);

  /**
   * A start tag.
   *
   * IMPORTANT: The parser watches the return value of this event. If this returns
   * an integer, the parser will switch TEXTMODE patters according to the int.
   *
   * This is how the Tree Builder can tell the Tokenizer when a certain tag should
   * cause the parser to go into RAW text mode.
   *
   * The HTML5 standard requires that the builder is the one that initiates this
   * step, and this is the only way short of a circular reference that we can
   * do that.
   *
   * Example: if a startTag even for a `script` name is fired, and the startTag()
   * implementation returns Tokenizer::TEXTMODE_RAW, then the tokenizer will
   * switch into RAW text mode and consume data until it reaches a closing
   * `script` tag.
   *
   * The textmode is automatically reset to Tokenizer::TEXTMODE_NORMAL when the
   * closing tag is encounter. **This behavior may change.**
   *
   * @param string $name
   *            The tag name.
   * @param array $attributes
   *            An array with all of the tag's attributes.
   * @param boolean $selfClosing
   *            An indicator of whether or not this tag is self-closing (<foo/>)
   * @return numeric One of the Tokenizer::TEXTMODE_* constants.
   */
  public function startTag($name, $attributes = array(), $selfClosing = false);

  /**
   * An end-tag.
   */
  public function endTag($name);

  /**
   * A comment section (unparsed character data).
   */
  public function comment($cdata);

  /**
   * A unit of parsed character data.
   *
   * Entities in this text are *already decoded*.
   */
  public function text($cdata);

  /**
   * Indicates that the document has been entirely processed.
   */
  public function eof();

  /**
   * Emitted when the parser encounters an error condition.
   */
  public function parseError($msg, $line, $col);

  /**
   * A CDATA section.
   *
   * @param string $data
   *            The unparsed character data.
   */
  public function cdata($data);

  /**
   * This is a holdover from the XML spec.
   *
   * While user agents don't get PIs, server-side does.
   *
   * @param string $name
   *            The name of the processor (e.g. 'php').
   * @param string $data
   *            The unparsed data.
   */
  public function processingInstruction($name, $data = null);

}

Members

Namesort descending Modifiers Type Description Overrides
EventHandler::cdata public function A CDATA section. 2
EventHandler::comment public function A comment section (unparsed character data). 2
EventHandler::doctype public function A doctype declaration. 2
EventHandler::DOCTYPE_NONE constant
EventHandler::DOCTYPE_PUBLIC constant
EventHandler::DOCTYPE_SYSTEM constant
EventHandler::endTag public function An end-tag. 2
EventHandler::eof public function Indicates that the document has been entirely processed. 2
EventHandler::parseError public function Emitted when the parser encounters an error condition. 2
EventHandler::processingInstruction public function This is a holdover from the XML spec. 2
EventHandler::startTag public function A start tag. 2
EventHandler::text public function A unit of parsed character data. 2