44use Symfony \Component \OptionsResolver \OptionsResolver ;
55
66class CodeGeneratorConfig {
7-
7+
88 protected $ options ;
9-
9+
1010 public function __construct (array $ options = []) {
1111 $ resolver = new OptionsResolver ();
1212 $ resolver ->setOptional ($ this ->getOptionalOptions ());
1313 $ resolver ->setAllowedTypes ($ this ->getAllowedOptionTypes ());
1414 $ resolver ->setDefaults ($ this ->getDefaultOptions ());
1515 $ this ->options = $ resolver ->resolve ($ options );
1616 }
17-
17+
1818 protected function getOptionalOptions () {
19- return ['generateDocblock ' , 'generateEmptyDocblock ' ];
19+ return [
20+ 'generateDocblock ' ,
21+ 'generateEmptyDocblock ' ,
22+ 'generateScalarTypeHints ' ,
23+ 'generateReturnTypeHints ' ,
24+ ];
2025 }
21-
26+
2227 protected function getDefaultOptions () {
2328 return [
2429 'generateDocblock ' => true ,
25- 'generateEmptyDocblock ' => true
30+ 'generateEmptyDocblock ' => true ,
31+ 'generateScalarTypeHints ' => false ,
32+ 'generateReturnTypeHints ' => false ,
2633 ];
2734 }
28-
35+
2936 protected function getAllowedOptionTypes () {
3037 return [
3138 'generateDocblock ' => 'bool ' ,
3239 'generateEmptyDocblock ' => 'bool ' ,
40+ 'generateScalarTypeHints ' => 'bool ' ,
41+ 'generateReturnTypeHints ' => 'bool ' ,
3342 ];
3443 }
35-
44+
3645 /**
3746 * @return boolean
3847 */
3948 public function getGenerateDocblock () {
4049 return $ this ->options ['generateDocblock ' ];
4150 }
42-
51+
4352 /**
44- *
53+ *
4554 * @param boolean $generate
4655 * @return $this
4756 */
4857 public function setGenerateDocblock ($ generate ) {
4958 $ this ->options ['generateDocblock ' ] = $ generate ;
5059 return $ this ;
5160 }
52-
61+
5362 /**
5463 * @return boolean
5564 */
5665 public function getGenerateEmptyDocblock () {
5766 return $ this ->options ['generateEmptyDocblock ' ];
5867 }
59-
68+
6069 /**
61- *
70+ *
6271 * @param boolean $generate
6372 * @return $this
6473 */
6574 public function setGenerateEmptyDocblock ($ generate ) {
6675 $ this ->options ['generateEmptyDocblock ' ] = $ generate ;
6776 return $ this ;
6877 }
78+
79+ /**
80+ * @return boolean
81+ */
82+ public function getGenerateScalarTypeHints () {
83+ return $ this ->options ['generateScalarTypeHints ' ];
84+ }
85+
86+ /**
87+ *
88+ * @param boolean $generate
89+ * @return $this
90+ */
91+ public function setGenerateScalarTypeHints ($ generate ) {
92+ $ this ->options ['generateScalarTypeHints ' ] = $ generate ;
93+ return $ this ;
94+ }
95+
96+ /**
97+ * @return boolean
98+ */
99+ public function getGenerateReturnTypeHints () {
100+ return $ this ->options ['generateReturnTypeHints ' ];
101+ }
102+
103+ /**
104+ *
105+ * @param boolean $generate
106+ * @return $this
107+ */
108+ public function setGenerateReturnTypeHints ($ generate ) {
109+ $ this ->options ['generateReturnTypeHints ' ] = $ generate ;
110+ return $ this ;
111+ }
69112}
0 commit comments