@@ -24,35 +24,39 @@ class ProjectData
2424 */
2525 public function __construct ($ projectDataJson )
2626 {
27- /**
28- * Get SDK version from composer.json file and set it in generator`.
29- */
30- $ ComposerJson = json_decode (file_get_contents (dirname (__FILE__ ) . '/../../composer.json ' ), true );
31- $ sdkVersion = $ ComposerJson ['version ' ];
32- $ this ->generator = "renderforest/sdk-node/ $ sdkVersion " ;
33-
34- function objectToArray ($ objectToConvert )
35- {
36- if (is_object ($ objectToConvert )) {
37- $ objectToConvert = get_object_vars ($ objectToConvert );
38- }
27+ $ composer = file_get_contents (dirname (__FILE__ ) . '/../../composer.json ' );
28+ $ composerJson = json_decode ($ composer , true );
29+ $ sdkVersion = $ composerJson ['version ' ];
3930
40- if (is_array ($ objectToConvert )) {
41- return array_map (__FUNCTION__ , $ objectToConvert );
42- } else {
43- return $ objectToConvert ;
44- }
45- }
46- $ this ->projectDataJson = objectToArray ($ projectDataJson );
47- $ this ->projectDataUtil = new ProjectDataUtil ();
31+ $ this ->generator = "renderforest/sdk-php/ $ sdkVersion " ;
4832 $ this ->patchProperties = [];
33+ $ this ->projectDataJson = $ this ->objectToArray ($ projectDataJson );
34+ $ this ->projectDataUtil = new ProjectDataUtil ();
4935 $ this ->setGenerator ();
5036 }
5137
5238 /**
53- * @param $array
39+ * Converts `stdClass` object to array recursively.
40+ * @param \stdClass $objectToConvert
5441 * @return array
42+ */
43+ private function objectToArray ($ objectToConvert )
44+ {
45+ if (is_object ($ objectToConvert )) {
46+ $ objectToConvert = get_object_vars ($ objectToConvert );
47+ }
48+
49+ if (is_array ($ objectToConvert )) {
50+ return array_map ([__CLASS__ , __METHOD__ ], $ objectToConvert );
51+ } else {
52+ return $ objectToConvert ;
53+ }
54+ }
55+
56+ /**
5557 * Checks if given array have `NULL` property then unset it, otherwise does noting.
58+ * @param $array - The data to unset `NULL` props.
59+ * @return array
5660 */
5761 private function unsetNullProperties ($ array )
5862 {
@@ -75,8 +79,8 @@ private function setGenerator()
7579 }
7680
7781 /**
78- * @return array
7982 * Get patch object.
83+ * @return array
8084 */
8185 public function getPatchObject ()
8286 {
@@ -258,6 +262,7 @@ public function getVoiceOver()
258262 */
259263 public function setVoiceOver ($ voiceOver )
260264 {
265+ $ voiceOver = (empty ($ voiceOver )) ? new \stdClass () : $ voiceOver ;
261266 $ this ->projectDataJson ['data ' ]['voiceOver ' ] = $ voiceOver ;
262267 array_push ($ this ->patchProperties , 'voiceOver ' );
263268 }
0 commit comments