@@ -24,7 +24,7 @@ final class CachingCoveredFileAnalyser extends Cache implements CoveredFileAnaly
2424 /**
2525 * @var array
2626 */
27- private $ inMemoryCacheForIgnoredLines = [];
27+ private $ cache = [];
2828
2929 public function __construct (string $ directory , CoveredFileAnalyser $ coveredFileAnalyser , bool $ validate = true )
3030 {
@@ -35,70 +35,65 @@ public function __construct(string $directory, CoveredFileAnalyser $coveredFileA
3535
3636 public function classesIn (string $ filename ): array
3737 {
38- if ($ this ->has ( $ filename, __METHOD__ )) {
39- return $ this ->read ($ filename, __METHOD__ );
38+ if (! isset ( $ this ->cache [ $ filename] )) {
39+ $ this ->process ($ filename );
4040 }
4141
42- $ data = $ this ->coveredFileAnalyser ->classesIn ($ filename );
43-
44- $ this ->write ($ filename , __METHOD__ , $ data );
45-
46- return $ data ;
42+ return $ this ->cache [$ filename ]['classesIn ' ];
4743 }
4844
4945 public function traitsIn (string $ filename ): array
5046 {
51- if ($ this ->has ( $ filename, __METHOD__ )) {
52- return $ this ->read ($ filename, __METHOD__ );
47+ if (! isset ( $ this ->cache [ $ filename] )) {
48+ $ this ->process ($ filename );
5349 }
5450
55- $ data = $ this ->coveredFileAnalyser ->traitsIn ($ filename );
56-
57- $ this ->write ($ filename , __METHOD__ , $ data );
58-
59- return $ data ;
51+ return $ this ->cache [$ filename ]['traitsIn ' ];
6052 }
6153
6254 public function functionsIn (string $ filename ): array
6355 {
64- if ($ this ->has ( $ filename, __METHOD__ )) {
65- return $ this ->read ($ filename, __METHOD__ );
56+ if (! isset ( $ this ->cache [ $ filename] )) {
57+ $ this ->process ($ filename );
6658 }
6759
68- $ data = $ this ->coveredFileAnalyser ->functionsIn ($ filename );
69-
70- $ this ->write ($ filename , __METHOD__ , $ data );
71-
72- return $ data ;
60+ return $ this ->cache [$ filename ]['functionsIn ' ];
7361 }
7462
7563 public function linesOfCodeFor (string $ filename ): LinesOfCode
7664 {
77- if ($ this ->has ( $ filename, __METHOD__ )) {
78- return $ this ->read ($ filename, __METHOD__ , [LinesOfCode::class] );
65+ if (! isset ( $ this ->cache [ $ filename] )) {
66+ $ this ->process ($ filename );
7967 }
8068
81- $ data = $ this ->coveredFileAnalyser ->linesOfCodeFor ($ filename );
82-
83- $ this ->write ($ filename , __METHOD__ , $ data );
84-
85- return $ data ;
69+ return $ this ->cache [$ filename ]['linesOfCodeFor ' ];
8670 }
8771
8872 public function ignoredLinesFor (string $ filename ): array
8973 {
90- if (isset ($ this ->inMemoryCacheForIgnoredLines [$ filename ])) {
91- return $ this ->inMemoryCacheForIgnoredLines [ $ filename] ;
74+ if (! isset ($ this ->cache [$ filename ])) {
75+ $ this ->process ( $ filename) ;
9276 }
9377
94- if ($ this ->has ($ filename , __METHOD__ )) {
95- return $ this ->read ($ filename , __METHOD__ );
96- }
78+ return $ this ->cache [$ filename ]['ignoredLinesFor ' ];
79+ }
9780
98- $ this ->inMemoryCacheForIgnoredLines [$ filename ] = $ this ->coveredFileAnalyser ->ignoredLinesFor ($ filename );
81+ public function process (string $ filename ): void
82+ {
83+ if ($ this ->has ($ filename , __CLASS__ )) {
84+ $ this ->cache [$ filename ] = $ this ->read ($ filename , __CLASS__ , [LinesOfCode::class]);
85+
86+ return ;
87+ }
9988
100- $ this ->write ($ filename , __METHOD__ , $ this ->inMemoryCacheForIgnoredLines [$ filename ]);
89+ $ this ->cache [$ filename ] = [
90+ 'classesIn ' => $ this ->coveredFileAnalyser ->classesIn ($ filename ),
91+ 'traitsIn ' => $ this ->coveredFileAnalyser ->traitsIn ($ filename ),
92+ 'functionsIn ' => $ this ->coveredFileAnalyser ->functionsIn ($ filename ),
93+ 'linesOfCodeFor ' => $ this ->coveredFileAnalyser ->linesOfCodeFor ($ filename ),
94+ 'ignoredLinesFor ' => $ this ->coveredFileAnalyser ->ignoredLinesFor ($ filename ),
95+ ];
10196
102- return $ this ->inMemoryCacheForIgnoredLines [$ filename ];
97+ $ this -> write ( $ filename , __CLASS__ , $ this ->cache [$ filename ]) ;
10398 }
10499}
0 commit comments