@@ -100,21 +100,41 @@ function getRequestTitle($request)
100100$ log = json_decode (file_get_contents ('execution.log ' ), true );
101101$ examples = [];
102102$ menu = [];
103+ $ contentHashes = [];
103104
104105foreach ($ log as $ record ) {
105106 $ trace = join ('; ' , array_column ($ record ['trace ' ], 'file ' ));
106107 if (preg_match ('/ApiClientTest\.php/ ' , $ trace )) {
107108 continue ;
108109 }
109110
110- $ title = getRequestTitle ($ record ['request ' ]);
111- $ name = str_replace (' > ' , '- ' , $ title );
111+ $ origTitle = $ title = getRequestTitle ($ record ['request ' ]);
112+ $ origName = $ name = str_replace (' > ' , '- ' , $ title );
112113
113- if (array_key_exists ($ name , $ examples )) {
114+ $ index = 2 ;
115+ while (array_key_exists ($ name , $ examples )) {
116+ $ title = $ origTitle . " ( $ index) " ;
117+ $ name = $ origName . '- ' . $ index ++;
118+ }
119+
120+ $ contentHash = md5 (preg_replace ('/>([^<]+?)</ ' , '>< ' , $ record ['request ' ]));
121+ if (array_key_exists ($ contentHash , $ contentHashes )) {
114122 continue ;
123+ } else {
124+ $ contentHashes [$ contentHash ] = true ;
115125 }
116126
117- $ titleParts = explode (' > ' , $ title );
127+ $ examples [$ name ] = [
128+ 'title ' => $ title ,
129+ 'request ' => $ record ['request ' ],
130+ 'response ' => $ record ['response ' ],
131+ ];
132+ }
133+
134+ ksort ($ examples );
135+
136+ foreach ($ examples as $ name => $ example ) {
137+ $ titleParts = explode (' > ' , $ example ['title ' ]);
118138 $ operator = $ titleParts [0 ];
119139 $ menuItem = [
120140 'subTitle ' => join (' > ' , array_slice ($ titleParts , 1 )),
@@ -126,12 +146,6 @@ function getRequestTitle($request)
126146 } else {
127147 $ menu [$ operator ][] = $ menuItem ;
128148 }
129-
130- $ examples [$ name ] = [
131- 'title ' => $ title ,
132- 'request ' => $ record ['request ' ],
133- 'response ' => $ record ['response ' ],
134- ];
135149}
136150
137151$ title = 'Plesk XML-RPC Examples ' ;
0 commit comments