Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3namespace Wikimedia\RemexHtml\Serializer;
4
5/**
6 * The interface for classes that help Serializer to convert nodes to strings.
7 * Serializer assumes that the return values of these functions can be
8 * concatenated to make a document.
9 *
10 * It is not safe to assume that the methods will be called in any particular
11 * order, or that the return values will actually be retained in the final
12 * Serializer result.
13 */
14interface Formatter {
15    /**
16     * Get a string which starts the document
17     *
18     * @param string|null $fragmentNamespace
19     * @param string|null $fragmentName
20     * @return string
21     */
22    public function startDocument( $fragmentNamespace, $fragmentName );
23
24    /**
25     * Encode the given character substring
26     *
27     * @param SerializerNode $parent The parent of the text node (at creation time)
28     * @param string $text
29     * @param int $start The offset within $text
30     * @param int $length The number of bytes within $text
31     * @return string
32     */
33    public function characters( SerializerNode $parent, $text, $start, $length );
34
35    /**
36     * Encode the given element
37     *
38     * @param SerializerNode $parent The parent of the node (when it is closed)
39     * @param SerializerNode $node The element to encode
40     * @param string|null $contents The previously-encoded contents, or null
41     *   for a void element. Void elements can be serialized as self-closing
42     *   tags.
43     * @return string
44     */
45    public function element( SerializerNode $parent, SerializerNode $node, $contents );
46
47    /**
48     * Encode a comment
49     * @param SerializerNode $parent The parent of the node (at creation time)
50     * @param string $text The inner text of the comment
51     * @return string
52     */
53    public function comment( SerializerNode $parent, $text );
54
55    /**
56     * Encode a doctype. This event occurs when the source document has a doctype,
57     * it can return an empty string if the formatter wants to use its own doctype.
58     *
59     * @param string $name The doctype name, usually "html"
60     * @param string $public The PUBLIC identifier
61     * @param string $system The SYSTEM identifier
62     * @return string
63     */
64    public function doctype( $name, $public, $system );
65}