@@ -24,65 +24,68 @@ public function generate(string $namespace, string $destinationPath)
24
24
{
25
25
$ namespace = $ this ->cleanUpNamespace ($ namespace );
26
26
$ codePrinter = new Standard ();
27
- $ schemaClassNameMap = [];
28
- foreach ($ this ->spec ->components ->schemas as $ name => $ schema ) {
29
- $ schemaClassName = $ this ->className ($ name );
30
- if (strlen ($ schemaClassName ) === 0 ) {
31
- continue ;
27
+ if (count ($ this ->spec ->components ->schemas ) > 0 ) {
28
+ $ schemaClassNameMap = [];
29
+ foreach ($ this ->spec ->components ->schemas as $ name => $ schema ) {
30
+ $ schemaClassName = $ this ->className ($ name );
31
+ if (strlen ($ schemaClassName ) === 0 ) {
32
+ continue ;
33
+ }
34
+ $ schemaClassNameMap [spl_object_hash ($ schema )] = $ schemaClassName ;
32
35
}
33
- $ schemaClassNameMap [spl_object_hash ($ schema )] = $ schemaClassName ;
34
- }
35
- foreach ($ this ->spec ->components ->schemas as $ name => $ schema ) {
36
- $ schemaClassName = $ schemaClassNameMap [spl_object_hash ($ schema )];
37
- if (strlen ($ schemaClassName ) === 0 ) {
38
- continue ;
36
+ foreach ($ this ->spec ->components ->schemas as $ name => $ schema ) {
37
+ $ schemaClassName = $ schemaClassNameMap [spl_object_hash ($ schema )];
38
+ if (strlen ($ schemaClassName ) === 0 ) {
39
+ continue ;
40
+ }
41
+ @mkdir (dirname ($ destinationPath . '/Schema/ ' . $ schemaClassName ), 0777 , true );
42
+ file_put_contents ($ destinationPath . '/Schema/ ' . $ schemaClassName . '.php ' , $ codePrinter ->prettyPrintFile ([
43
+ Schema::generate (
44
+ $ name ,
45
+ $ this ->cleanUpNamespace ($ namespace . dirname ('Schema/ ' . $ schemaClassName )),
46
+ strrev (explode ('/ ' , strrev ($ schemaClassName ))[0 ]),
47
+ $ schema ,
48
+ $ schemaClassNameMap
49
+ ),
50
+ ]) . PHP_EOL );
39
51
}
40
- @mkdir (dirname ($ destinationPath . '/Schema/ ' . $ schemaClassName ), 0777 , true );
41
- file_put_contents ($ destinationPath . '/Schema/ ' . $ schemaClassName . '.php ' , $ codePrinter ->prettyPrintFile ([
42
- Schema::generate (
43
- $ name ,
44
- $ this ->cleanUpNamespace ($ namespace . dirname ('Schema/ ' . $ schemaClassName )),
45
- strrev (explode ('/ ' , strrev ($ schemaClassName ))[0 ]),
46
- $ schema ,
47
- $ schemaClassNameMap
48
- ),
49
- ]) . PHP_EOL );
50
52
}
51
53
52
- foreach ($ this ->spec ->paths as $ path => $ pathItem ) {
53
- $ pathClassName = $ this ->className ($ path );
54
- if (strlen ($ pathClassName ) === 0 ) {
55
- continue ;
56
- }
57
- @mkdir (dirname ($ destinationPath . '/Path/ ' . $ pathClassName ), 0777 , true );
58
- file_put_contents ($ destinationPath . '/Path/ ' . $ pathClassName . '.php ' , $ codePrinter ->prettyPrintFile ([
59
- Path::generate (
60
- $ path ,
61
- $ this ->cleanUpNamespace ($ namespace . dirname ('Path/ ' . $ pathClassName )),
62
- $ namespace ,
63
- strrev (explode ('/ ' , strrev ($ pathClassName ))[0 ]),
64
- $ pathItem
65
- ),
66
- ]) . PHP_EOL );
67
- foreach ($ pathItem ->getOperations () as $ method => $ operation ) {
68
- $ operationClassName = $ this ->className ((new Convert ($ operation ->operationId ))->fromTrain ()->toPascal ());
69
- $ operations [$ method ] = $ operationClassName ;
70
- if (strlen ($ operationClassName ) === 0 ) {
54
+ if (count ($ this ->spec ->paths ) > 0 ) {
55
+ foreach ($ this ->spec ->paths as $ path => $ pathItem ) {
56
+ $ pathClassName = $ this ->className ($ path );
57
+ if (strlen ($ pathClassName ) === 0 ) {
71
58
continue ;
72
59
}
73
- @mkdir (dirname ($ destinationPath . '/Operation/ ' . $ operationClassName ), 0777 , true );
74
- file_put_contents ($ destinationPath . '/Operation/ ' . $ operationClassName . '.php ' , $ codePrinter ->prettyPrintFile ([
75
- Operation::generate (
76
- $ path ,
77
- $ method ,
78
- $ this ->cleanUpNamespace ($ namespace . dirname ('Operation/ ' . $ operationClassName )),
79
- strrev (explode ('/ ' , strrev ($ operationClassName ))[0 ]),
80
- $ operation
81
- ),
82
- ]) . PHP_EOL );
60
+ @mkdir (dirname ($ destinationPath . '/Path/ ' . $ pathClassName ), 0777 , true );
61
+ file_put_contents ($ destinationPath . '/Path/ ' . $ pathClassName . '.php ' , $ codePrinter ->prettyPrintFile ([
62
+ Path::generate (
63
+ $ path ,
64
+ $ this ->cleanUpNamespace ($ namespace . dirname ('Path/ ' . $ pathClassName )),
65
+ $ namespace ,
66
+ strrev (explode ('/ ' , strrev ($ pathClassName ))[0 ]),
67
+ $ pathItem
68
+ ),
69
+ ]) . PHP_EOL );
70
+ foreach ($ pathItem ->getOperations () as $ method => $ operation ) {
71
+ $ operationClassName = $ this ->className ((new Convert ($ operation ->operationId ))->fromTrain ()->toPascal ());
72
+ $ operations [$ method ] = $ operationClassName ;
73
+ if (strlen ($ operationClassName ) === 0 ) {
74
+ continue ;
75
+ }
76
+ @mkdir (dirname ($ destinationPath . '/Operation/ ' . $ operationClassName ), 0777 , true );
77
+ file_put_contents ($ destinationPath . '/Operation/ ' . $ operationClassName . '.php ' , $ codePrinter ->prettyPrintFile ([
78
+ Operation::generate (
79
+ $ path ,
80
+ $ method ,
81
+ $ this ->cleanUpNamespace ($ namespace . dirname ('Operation/ ' . $ operationClassName )),
82
+ strrev (explode ('/ ' , strrev ($ operationClassName ))[0 ]),
83
+ $ operation
84
+ ),
85
+ ]) . PHP_EOL );
86
+ }
83
87
}
84
88
}
85
-
86
89
}
87
90
88
91
private function className (string $ className ): string
0 commit comments