1 | <?php |
||
2 | /** |
||
3 | * Copyright (c) 2010–2019 Ryan Parman <http://ryanparman.com>. |
||
4 | * Copyright (c) 2016–2019 Contributors. |
||
5 | * |
||
6 | * http://opensource.org/licenses/Apache2.0 |
||
7 | */ |
||
8 | |||
9 | declare(strict_types=1); |
||
10 | |||
11 | namespace SimplePie\UtilityPack\Mixin; |
||
12 | |||
13 | /** |
||
14 | * Shared code for working with configurable libxml settings. |
||
15 | */ |
||
16 | trait LibxmlTrait |
||
17 | { |
||
18 | /** |
||
19 | * Bitwise libxml options to use for parsing XML. |
||
20 | * |
||
21 | * @var int |
||
22 | */ |
||
23 | protected $libxml; |
||
0 ignored issues
–
show
Coding Style
introduced
by
![]() |
|||
24 | |||
25 | /** |
||
26 | * Gets the default (preferred) configuration for libxml. |
||
27 | */ |
||
28 | 1 | public static function getDefaultLibxmlConfig(): int |
|
29 | { |
||
30 | return \LIBXML_HTML_NOIMPLIED // Required, or things crash. |
||
31 | | \LIBXML_BIGLINES |
||
32 | | \LIBXML_COMPACT |
||
33 | | \LIBXML_HTML_NODEFDTD |
||
34 | | \LIBXML_NOBLANKS |
||
35 | | \LIBXML_NOENT |
||
36 | | \LIBXML_NOXMLDECL |
||
37 | | \LIBXML_NSCLEAN |
||
38 | 1 | | \LIBXML_PARSEHUGE; |
|
39 | } |
||
40 | |||
41 | /** |
||
42 | * Sets the libxml value to use for parsing XML. |
||
43 | * |
||
44 | * @param int $libxml TODO add a description here. |
||
45 | */ |
||
46 | 1 | public function setLibxml(int $libxml): self |
|
47 | { |
||
48 | 1 | $this->libxml = $libxml; |
|
49 | |||
50 | // What are the libxml2 configurations? |
||
51 | 1 | $this->logger->debug(\sprintf( // @phan-suppress-current-line PhanUndeclaredProperty |
|
52 | 1 | 'Libxml configuration has a bitwise value of `%s`.%s', |
|
53 | 1 | (string) $this->libxml, |
|
54 | 1 | (4792582 === $this->libxml) |
|
55 | 1 | ? ' (This is the default configuration.)' |
|
56 | 1 | : '' |
|
57 | )); |
||
58 | |||
59 | 1 | return $this; |
|
60 | } |
||
61 | |||
62 | /** |
||
63 | * Gets the libxml value to use for parsing XML. |
||
64 | */ |
||
65 | 1 | public function getLibxml(): int |
|
66 | { |
||
67 | 1 | return $this->libxml; |
|
68 | } |
||
69 | } |
||
70 |