Completed
Branch master (621a4a)
by Robbert
50:54
created
src/html/Parser.php 2 patches
Doc Comments   +6 added lines patch added patch discarded remove patch
@@ -34,6 +34,9 @@  discard block
 block discarded – undo
34 34
 		}
35 35
 	}
36 36
 
37
+	/**
38
+	 * @param string $html
39
+	 */
37 40
 	private function parsePartial( $html, $encoding ) 
38 41
 	{
39 42
 		$result = $this->parseFull( '<div id="ArcPartialHTML">'.$html.'</div>', $encoding );
@@ -45,6 +48,9 @@  discard block
 block discarded – undo
45 48
 		return $result;
46 49
 	}
47 50
 
51
+	/**
52
+	 * @param string $html
53
+	 */
48 54
 	private function parseFull( $html ) 
49 55
 	{
50 56
 		$dom = new \DomDocument();
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -8,60 +8,60 @@
 block discarded – undo
8 8
 		'libxml_options' => 0
9 9
 	];
10 10
 
11
-	public function __construct( $options = array() ) 
11
+	public function __construct($options = array()) 
12 12
 	{
13
-		$optionList = [ 'libxml_options' ];
14
-		foreach( $options as $option => $optionValue ) {
15
-			if ( in_array( $option, $optionList ) ) {
13
+		$optionList = ['libxml_options'];
14
+		foreach ($options as $option => $optionValue) {
15
+			if (in_array($option, $optionList)) {
16 16
 				$this->{$option} = $optionValue;
17 17
 			}
18 18
 		}
19 19
 	}
20 20
 
21
-	public function parse( $html, $encoding = null ) 
21
+	public function parse($html, $encoding = null) 
22 22
 	{
23
-		if ( !$html ) {
24
-			return \arc\html\Proxy( null );
23
+		if (!$html) {
24
+			return \arc\html\Proxy(null);
25 25
 		}
26
-		if ( $html instanceof Proxy ) { // already parsed
26
+		if ($html instanceof Proxy) { // already parsed
27 27
 			return $html;
28 28
 		}
29
-		$html = (string) $html;
30
-		if ( stripos($html, '<html>')!==false ) {
31
-			return $this->parseFull( $html, $encoding );
29
+		$html = (string)$html;
30
+		if (stripos($html, '<html>') !== false) {
31
+			return $this->parseFull($html, $encoding);
32 32
 		} else {		
33
-			return $this->parsePartial( $html, $encoding );
33
+			return $this->parsePartial($html, $encoding);
34 34
 		}
35 35
 	}
36 36
 
37
-	private function parsePartial( $html, $encoding ) 
37
+	private function parsePartial($html, $encoding) 
38 38
 	{
39
-		$result = $this->parseFull( '<div id="ArcPartialHTML">'.$html.'</div>', $encoding );
40
-		if ( $result ) {
41
-			$result = new \arc\html\Proxy( $result->find('#ArcPartialHTML')[0]->children(), $this );
39
+		$result = $this->parseFull('<div id="ArcPartialHTML">'.$html.'</div>', $encoding);
40
+		if ($result) {
41
+			$result = new \arc\html\Proxy($result->find('#ArcPartialHTML')[0]->children(), $this);
42 42
 		} else {
43 43
 			throw new \arc\Exception('parse error');
44 44
 		}
45 45
 		return $result;
46 46
 	}
47 47
 
48
-	private function parseFull( $html ) 
48
+	private function parseFull($html) 
49 49
 	{
50 50
 		$dom = new \DomDocument();
51 51
 		libxml_disable_entity_loader(); // prevents XXE attacks
52 52
 		$prevErrorSetting = libxml_use_internal_errors(true);
53
-		if ( $dom->loadHTML( $html, $this->options['libxml_options'] ) ) {
54
-			libxml_use_internal_errors( $prevErrorSetting );
55
-			return new \arc\html\Proxy( simplexml_import_dom( $dom ), $this );
53
+		if ($dom->loadHTML($html, $this->options['libxml_options'])) {
54
+			libxml_use_internal_errors($prevErrorSetting);
55
+			return new \arc\html\Proxy(simplexml_import_dom($dom), $this);
56 56
 		}
57 57
 		$errors = libxml_get_errors();
58 58
 		libxml_clear_errors();
59
-		libxml_use_internal_errors( $prevErrorSetting );
59
+		libxml_use_internal_errors($prevErrorSetting);
60 60
 		$message = 'Incorrect html passed.';
61
-		foreach ( $errors as $error ) {
61
+		foreach ($errors as $error) {
62 62
 			$message .= "\nline: ".$error->line."; column: ".$error->column."; ".$error->message;
63 63
 		}
64
-		throw new \arc\Exception( $message, \arc\exceptions::ILLEGAL_ARGUMENT );
64
+		throw new \arc\Exception($message, \arc\exceptions::ILLEGAL_ARGUMENT);
65 65
 	}
66 66
 
67 67
 }
68 68
\ No newline at end of file
Please login to merge, or discard this patch.
src/html.php 1 patch
Spacing   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -13,27 +13,27 @@  discard block
 block discarded – undo
13 13
 
14 14
 class html extends xml
15 15
 {
16
-	static private $formBuilder=null;
16
+	static private $formBuilder = null;
17 17
 		
18
-	static public function __callStatic( $name, $args ) 
18
+	static public function __callStatic($name, $args) 
19 19
 	{
20
-		return call_user_func_array( [ new html\Writer(), $name ], $args );
20
+		return call_user_func_array([new html\Writer(), $name], $args);
21 21
 	}
22 22
 
23
-	static public function parse( $html, $encoding = null ) 
23
+	static public function parse($html, $encoding = null) 
24 24
 	{
25 25
 		$parser = new html\Parser();
26
-		return $parser->parse( $html, $encoding );
26
+		return $parser->parse($html, $encoding);
27 27
 	}
28 28
 
29
-	static public function formBuilder( $fields, $formAttributes=[] ) {
30
-		if ( !self::$formBuilder ) {
29
+	static public function formBuilder($fields, $formAttributes = []) {
30
+		if (!self::$formBuilder) {
31 31
 			self::$formBuilder = \arc\prototype::create([
32 32
 				'fields' => [],
33 33
 				'attributes' => [],
34 34
 				':parseField' => function($self, $field, $key) {
35
-					if ( !is_array($field) ) {
36
-						$field = [ 'name' => $field, 'label' => $field ];
35
+					if (!is_array($field)) {
36
+						$field = ['name' => $field, 'label' => $field];
37 37
 					}
38 38
 					$defaults = [
39 39
 						'type' => 'text',
@@ -49,9 +49,9 @@  discard block
 block discarded – undo
49 49
 				},
50 50
 				':getValue' => function($self, $field) {
51 51
 					$selected = null;
52
-					if ( $field['value'] ) {
52
+					if ($field['value']) {
53 53
 						$selected = $field['value'];
54
-					} else if ( $field['default'] ) {
54
+					} else if ($field['default']) {
55 55
 						$selected = $field['default'];
56 56
 					}
57 57
 					return $selected;				
@@ -59,9 +59,9 @@  discard block
 block discarded – undo
59 59
 				':renderOptions' => function($self, $field) {
60 60
 					$selected = $self->getValue($field);
61 61
 					$options = '';
62
-					foreach ( (array)$field['options'] as $key => $option ) {
63
-						$attributes = [ 'value' => $key ];
64
-						if ( $key === $selected ) {
62
+					foreach ((array)$field['options'] as $key => $option) {
63
+						$attributes = ['value' => $key];
64
+						if ($key === $selected) {
65 65
 							$attributes['selected'] = true;
66 66
 						}
67 67
 						$options .= \arc\html::option($attributes, $option);
@@ -73,16 +73,16 @@  discard block
 block discarded – undo
73 73
 						[
74 74
 							'id' => $field['name'],
75 75
 							'name' => $field['name'],
76
-						]+(array)$field['inputAttributes'],
76
+						] + (array)$field['inputAttributes'],
77 77
 						$self->renderOptions($field)
78 78
 					);
79 79
 				},
80
-				':renderInputRadioGroup' => function($self, $field ) {
80
+				':renderInputRadioGroup' => function($self, $field) {
81 81
 					$selected = $self->getValue($field);
82 82
 					$radios = '';
83
-					foreach( (array) $field['options'] as $key => $option ) {
83
+					foreach ((array)$field['options'] as $key => $option) {
84 84
 						$attributes = $field['inputAttributes'];
85
-						if ( $key === $selected ) {
85
+						if ($key === $selected) {
86 86
 							$attributes['checked'] = true;
87 87
 						}
88 88
 						$radios .= $self->renderInputRadio(['inputAttributes' => $attributes] + $field);
@@ -94,7 +94,7 @@  discard block
 block discarded – undo
94 94
 						$radios
95 95
 					);
96 96
 				},
97
-				':renderInputRadio' => function($self, $field ) {
97
+				':renderInputRadio' => function($self, $field) {
98 98
 					return \arc\html::input(
99 99
 						[
100 100
 							'type' => 'radio', 
@@ -145,31 +145,31 @@  discard block
 block discarded – undo
145 145
 				},
146 146
 				':renderInput' => function($self, $field) {
147 147
 					$renderMethod = 'renderInput'.ucfirst($field['type']);
148
-					if ( !isset($self->{$renderMethod}) ) {
148
+					if (!isset($self->{$renderMethod})) {
149 149
 						throw new \arc\ExceptionMethodNotFound('No render method for input type '.$field['type'], 404);
150 150
 					}
151 151
 					return $self->{$renderMethod}($field);
152 152
 				},
153 153
 				':renderLabel' => function($self, $field) {
154
-					if ( $field['label'] ) {
154
+					if ($field['label']) {
155 155
 						return \arc\html::label(['for' => $field['name']], $field['label']);
156 156
 					} else {
157 157
 						return '';
158 158
 					}
159 159
 				},
160
-				':renderField' => function($self, $field, $key=null) {
160
+				':renderField' => function($self, $field, $key = null) {
161 161
 					$field = $self->parseField($field, $key);
162 162
 					$contents = $self->renderLabel($field);
163 163
 					$contents .= $self->renderInput($field);
164 164
 					$attributes = isset($field['attributes']) ? $field['attributes'] : [];
165
-					if ( isset($field['class']) ) {
165
+					if (isset($field['class'])) {
166 166
 						$attributes['class'] = $field['class'];
167 167
 					}
168
-					return \arc\html::div( $attributes, $contents);
168
+					return \arc\html::div($attributes, $contents);
169 169
 				},
170 170
 				':__toString' => function($self) {
171 171
 					$fields = '';
172
-					foreach ( $self->fields as $key => $field ) {
172
+					foreach ($self->fields as $key => $field) {
173 173
 						$fields .= $self->renderField($field, $key);
174 174
 					}
175 175
 					return \arc\html::form($self->attributes, $fields);
Please login to merge, or discard this patch.
src/html/NodeList.php 1 patch
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -5,22 +5,22 @@
 block discarded – undo
5 5
 class NodeList extends \ArrayObject {
6 6
 	use \arc\xml\NodeListTrait;
7 7
 
8
-	protected function canHaveContent( $tagName ) {
8
+	protected function canHaveContent($tagName) {
9 9
 		$cantHaveContent = [ 
10 10
 			'area', 'base', 'basefont', 'br', 
11 11
 			'col', 'frame', 'hr', 'img', 'input',
12 12
 			'isindex', 'link', 'meta', 'param'
13 13
 		];
14
-		return !in_array( trim( strtolower( $tagName ) ), $cantHaveContent );
14
+		return !in_array(trim(strtolower($tagName)), $cantHaveContent);
15 15
 	}
16 16
 
17
-	protected function element( $tagName, $attributes, $content ) {
18
-		$tagName =  $this->writer->name( $tagName );
19
-		$el = '<' . $tagName;
20
-		$el .= $this->getAttributes( $attributes );
21
-		if ( $this->canHaveContent( $tagName ) ) {
22
-			$el .= '>' . self::indent( $this->writer->indent, $content );
23
-			$el .= '</' . $tagName . '>';
17
+	protected function element($tagName, $attributes, $content) {
18
+		$tagName = $this->writer->name($tagName);
19
+		$el = '<'.$tagName;
20
+		$el .= $this->getAttributes($attributes);
21
+		if ($this->canHaveContent($tagName)) {
22
+			$el .= '>'.self::indent($this->writer->indent, $content);
23
+			$el .= '</'.$tagName.'>';
24 24
 		} else {
25 25
 			$el .= '>';
26 26
 		}
Please login to merge, or discard this patch.
src/html/Proxy.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -7,10 +7,10 @@
 block discarded – undo
7 7
 
8 8
 class Proxy extends \arc\xml\Proxy {
9 9
 
10
-    public function __toString() {
11
-        $dom = dom_import_simplexml($this->target);
12
-        $result = ''.$dom->ownerDocument->saveHTML($dom);
13
-        return $result;
14
-    }
10
+	public function __toString() {
11
+		$dom = dom_import_simplexml($this->target);
12
+		$result = ''.$dom->ownerDocument->saveHTML($dom);
13
+		return $result;
14
+	}
15 15
 
16 16
 }
Please login to merge, or discard this patch.
src/html/Writer.php 1 patch
Spacing   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -6,51 +6,51 @@  discard block
 block discarded – undo
6 6
 
7 7
 	public $indent = false;
8 8
 
9
-	public function __construct( $options = [] ) 
9
+	public function __construct($options = []) 
10 10
 	{
11 11
 		$optionList = ['indent'];
12
-		foreach( $options as $option => $optionValue ) {
13
-			if ( in_array( $option, $optionList ) ) {
12
+		foreach ($options as $option => $optionValue) {
13
+			if (in_array($option, $optionList)) {
14 14
 				$this->{$option} = $optionValue;
15 15
 			}
16 16
 		}
17 17
 	}
18 18
 
19
-	public function __call( $name, $args ) 
19
+	public function __call($name, $args) 
20 20
 	{
21
-		return call_user_func_array( [ new \arc\html\NodeList( [], $this), $name], $args );
21
+		return call_user_func_array([new \arc\html\NodeList([], $this), $name], $args);
22 22
 	}
23 23
 
24
-	static public function name( $name ) 
24
+	static public function name($name) 
25 25
 	{
26
-		return strtolower( \arc\xml::name( $name ) );
26
+		return strtolower(\arc\xml::name($name));
27 27
 	}
28 28
 
29
-	static public function value( $value ) 
29
+	static public function value($value) 
30 30
 	{
31
-		if ( is_array( $value ) ) {
32
-			$content = array_reduce( $value, function( $result, $value ) {
33
-				return $result . ' ' . self::value( $value );
31
+		if (is_array($value)) {
32
+			$content = array_reduce($value, function($result, $value) {
33
+				return $result.' '.self::value($value);
34 34
 			} );
35
-		} else if ( is_bool( $value ) ) {
35
+		} else if (is_bool($value)) {
36 36
 			$content = $value ? 'true' : 'false';
37 37
 		} else {
38
-			$content = htmlspecialchars( (string) $value, ENT_QUOTES, 'UTF-8' );
38
+			$content = htmlspecialchars((string)$value, ENT_QUOTES, 'UTF-8');
39 39
 		}
40 40
 		return $content;
41 41
 	}
42 42
 
43
-	static public function attribute( $name, $value )
43
+	static public function attribute($name, $value)
44 44
 	{
45
-		return \arc\xml::attribute( $name, $value );
45
+		return \arc\xml::attribute($name, $value);
46 46
 	}
47 47
 
48
-	static public function comment( $content )
48
+	static public function comment($content)
49 49
 	{
50
-		return \arc\xml::comment( $content );
50
+		return \arc\xml::comment($content);
51 51
 	}
52 52
 
53
-	static public function doctype( $version='html5' )
53
+	static public function doctype($version = 'html5')
54 54
 	{
55 55
 		$doctypes = [
56 56
 			'html5'        => '<!doctype html>',
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
 			'frameset'     => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
60 60
 			'xhtml'        => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
61 61
 		];
62
-		return isset( $doctypes[$version] ) ? $doctypes[$version] : $doctypes['html5'];
62
+		return isset($doctypes[$version]) ? $doctypes[$version] : $doctypes['html5'];
63 63
 	}
64 64
 }
65 65
 
Please login to merge, or discard this patch.