summaryrefslogtreecommitdiff
path: root/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php')
-rw-r--r--vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php31
1 files changed, 16 insertions, 15 deletions
diff --git a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php
index cdaad5613..f53da078a 100644
--- a/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php
+++ b/vendor/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php
@@ -9,15 +9,15 @@
*/
namespace SebastianBergmann\CodeCoverage\StaticAnalysis;
-use function assert;
-use function crc32;
use function file_get_contents;
use function file_put_contents;
+use function implode;
use function is_file;
+use function md5;
use function serialize;
-use GlobIterator;
+use function unserialize;
use SebastianBergmann\CodeCoverage\Util\Filesystem;
-use SplFileInfo;
+use SebastianBergmann\FileIterator\Facade as FileIteratorFacade;
/**
* @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage
@@ -50,10 +50,6 @@ final class CachingFileAnalyser implements FileAnalyser
$this->analyser = $analyser;
$this->directory = $directory;
-
- if (self::$cacheVersion === null) {
- $this->calculateCacheVersion();
- }
}
public function classesIn(string $filename): array
@@ -165,19 +161,24 @@ final class CachingFileAnalyser implements FileAnalyser
private function cacheFile(string $filename): string
{
- return $this->directory . DIRECTORY_SEPARATOR . hash('sha256', $filename . crc32(file_get_contents($filename)) . self::$cacheVersion);
+ return $this->directory . DIRECTORY_SEPARATOR . md5($filename . "\0" . file_get_contents($filename) . "\0" . self::cacheVersion());
}
- private function calculateCacheVersion(): void
+ private static function cacheVersion(): string
{
- $buffer = '';
+ if (self::$cacheVersion !== null) {
+ return self::$cacheVersion;
+ }
- foreach (new GlobIterator(__DIR__ . '/*.php') as $file) {
- assert($file instanceof SplFileInfo);
+ $buffer = [];
- $buffer .= file_get_contents($file->getPathname());
+ foreach ((new FileIteratorFacade)->getFilesAsArray(__DIR__, '.php') as $file) {
+ $buffer[] = $file;
+ $buffer[] = file_get_contents($file);
}
- self::$cacheVersion = (string) crc32($buffer);
+ self::$cacheVersion = md5(implode("\0", $buffer));
+
+ return self::$cacheVersion;
}
}