Passed
Push — main ( a17faf...5c49fb )
by Jean-Christophe
02:14
created

ReactComponent::addConstructor()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 1
Metric Value
eloc 1
c 2
b 0
f 1
dl 0
loc 2
ccs 2
cts 2
cp 1
rs 10
cc 1
nc 1
nop 1
crap 1
1
<?php
2
namespace PHPMV\react;
3
4
use PHPMV\core\ReactClass;
5
use PHPMV\utils\JSX;
6
7
/**
8
 * A React component generator.
9
 * PHPMV\react$ReactComponent
10
 * This class is part of php-react
11
 *
12
 * @author jc
13
 * @version 1.0.0
14
 *
15
 */
16
class ReactComponent extends ReactClass {
17
18
	private $react;
19
20 1
	public function __construct(string $name, ReactJS $react) {
21 1
		parent::__construct($name, 'React.Component');
22 1
		$this->react = $react;
23 1
	}
24
25
	/**
26
	 * Add the constructor.
27
	 *
28
	 * @param string $jsBody
29
	 *        	The Javascript code body
30
	 */
31 1
	public function addConstructor(string $jsBody): void {
32 1
		$this->addMethod('constructor', "\tsuper(props);\n" . $jsBody, 'props');
33 1
	}
34
35
	/**
36
	 * Add the render method.
37
	 *
38
	 * @param string $jsxHtml
39
	 *        	The JSX code to render
40
	 * @param string $jsInit
41
	 *        	Javascript code intialization before render
42
	 */
43 1
	public function addRender(string $jsxHtml, string $jsInit = ''): void {
44 1
		$this->addMethod('render', $jsInit . ";return " . JSX::toJs($jsxHtml, $this->react) . ";");
45 1
	}
46
}
47
48