comparison vendor/masterminds/html5/src/HTML5/InstructionProcessor.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 129ea1e6d783
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
1 <?php
2 /**
3 * A handler for processor instructions.
4 */
5 namespace Masterminds\HTML5;
6
7 /**
8 * Provide an processor to handle embedded instructions.
9 *
10 * XML defines a mechanism for inserting instructions (like PHP) into a
11 * document. These are called "Processor Instructions." The HTML5 parser
12 * provides an opportunity to handle these processor instructions during
13 * the tree-building phase (before the DOM is constructed), which makes
14 * it possible to alter the document as it is being created.
15 *
16 * One could, for example, use this mechanism to execute well-formed PHP
17 * code embedded inside of an HTML5 document.
18 */
19 interface InstructionProcessor
20 {
21
22 /**
23 * Process an individual processing instruction.
24 *
25 * The process() function is responsible for doing the following:
26 * - Determining whether $name is an instruction type it can handle.
27 * - Determining what to do with the data passed in.
28 * - Making any subsequent modifications to the DOM by modifying the
29 * DOMElement or its attached DOM tree.
30 *
31 * @param DOMElement $element
32 * The parent element for the current processing instruction.
33 * @param string $name
34 * The instruction's name. E.g. `&lt;?php` has the name `php`.
35 * @param string $data
36 * All of the data between the opening and closing PI marks.
37 * @return DOMElement The element that should be considered "Current". This may just be
38 * the element passed in, but if the processor added more elements,
39 * it may choose to reset the current element to one of the elements
40 * it created. (When in doubt, return the element passed in.)
41 */
42 public function process(\DOMElement $element, $name, $data);
43 }