@@ -38,6 +38,47 @@ private function normalizeData($data)
3838 return $ normalizedValue ;
3939 }
4040
41+ private function stylish (array $ differenceContent ): array
42+ {
43+ return array_map (
44+ function ($ differenceItem ) {
45+ $ result = null ;
46+ if (!strcmp ($ differenceItem ["status " ],"not changed " )) {
47+ $ result = " " .
48+ $ differenceItem ["fileKey " ] .
49+ ": " .
50+ $ differenceItem ["file1Content " ] .
51+ "\n" ;
52+ } elseif (!strcmp ($ differenceItem ["status " ],"changed " )) {
53+ $ result = " - " .
54+ $ differenceItem ["fileKey " ] .
55+ ": " .
56+ $ differenceItem ["file1Content " ] .
57+ "\n" .
58+ " + " .
59+ $ differenceItem ["fileKey " ] .
60+ ": " .
61+ $ differenceItem ["file2Content " ] .
62+ "\n" ;
63+ } else if (!strcmp ($ differenceItem ["status " ],"added " )) {
64+ $ result = " + " .
65+ $ differenceItem ["fileKey " ] .
66+ ": " .
67+ $ differenceItem ["file2Content " ] .
68+ "\n" ;
69+ } else if (!strcmp ($ differenceItem ["status " ],"deleted " )) {
70+ $ result = " - " .
71+ $ differenceItem ["fileKey " ] .
72+ ": " .
73+ $ differenceItem ["file1Content " ] .
74+ "\n" ;
75+ }
76+ return $ result ;
77+ },
78+ $ differenceContent
79+ );
80+ }
81+
4182 private function getDifference ($ contentListKeys , $ file1Content , $ file2Content ): array
4283 {
4384 return array_map (
@@ -47,16 +88,35 @@ function ($fileKey) use ($file1Content, $file2Content) {
4788 array_key_exists ($ fileKey , $ file1Content ) &&
4889 !strcmp ($ file1Content [$ fileKey ], $ file2Content [$ fileKey ])
4990 ) {
50- $ result = " " . $ fileKey . ": " . $ file1Content [$ fileKey ] . "\n" ;
91+ $ result = [
92+ "status " => "not changed " ,
93+ "fileKey " => $ fileKey ,
94+ "file1Content " => $ file1Content [$ fileKey ],
95+ "file2Content " => $ file1Content [$ fileKey ]
96+ ];
5197 } elseif (array_key_exists ($ fileKey , $ file1Content )) {
52- $ result = " - " . $ fileKey . ": " . $ file1Content [$ fileKey ] . "\n" .
53- " + " . $ fileKey . ": " . $ file2Content [$ fileKey ] . "\n" ;
98+ $ result = [
99+ "status " => "changed " ,
100+ "fileKey " => $ fileKey ,
101+ "file1Content " => $ file1Content [$ fileKey ],
102+ "file2Content " => $ file2Content [$ fileKey ]
103+ ];
54104 } else {
55- $ result = " + " . $ fileKey . ": " . $ file2Content [$ fileKey ] . "\n" ;
105+ $ result = [
106+ "status " => "added " ,
107+ "fileKey " => $ fileKey ,
108+ "file1Content " => null ,
109+ "file2Content " => $ file2Content [$ fileKey ]
110+ ];
56111 }
57112 return $ result ;
58113 } else {
59- return " - " . $ fileKey . ": " . $ file1Content [$ fileKey ] . "\n" ;
114+ return [
115+ "status " => "deleted " ,
116+ "fileKey " => $ fileKey ,
117+ "file1Content " => $ file1Content [$ fileKey ],
118+ "file2Content " => null
119+ ];
60120 }
61121 },
62122 $ contentListKeys
@@ -121,11 +181,14 @@ public function execute(CommandInterface $command = null): CommandInterface
121181 $ file1Keys = array_keys ($ file1Content );
122182 $ file2Keys = array_keys ($ file2Content );
123183 $ mergedFileKeys = array_unique (array_merge ($ file1Keys , $ file2Keys ));
124- $ this ->filesDiffs = $ this ->getDifference (
184+
185+ $ contentAnalysisResult = $ this ->getDifference (
125186 $ mergedFileKeys ,
126187 $ file1Content ,
127188 $ file2Content
128189 );
190+
191+ $ this ->filesDiffs = $ this ->stylish ($ contentAnalysisResult );
129192 $ this ->filesDiffsString = "{ \n" . implode ("" , $ this ->filesDiffs ) . "} \n" ;
130193 }
131194
0 commit comments