summaryrefslogtreecommitdiff
path: root/vendor/phpunit/php-code-coverage/src/Report/PHP.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/phpunit/php-code-coverage/src/Report/PHP.php')
-rw-r--r--vendor/phpunit/php-code-coverage/src/Report/PHP.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/vendor/phpunit/php-code-coverage/src/Report/PHP.php b/vendor/phpunit/php-code-coverage/src/Report/PHP.php
new file mode 100644
index 000000000..d16b1b84f
--- /dev/null
+++ b/vendor/phpunit/php-code-coverage/src/Report/PHP.php
@@ -0,0 +1,43 @@
+<?php declare(strict_types=1);
+/*
+ * This file is part of phpunit/php-code-coverage.
+ *
+ * (c) Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace SebastianBergmann\CodeCoverage\Report;
+
+use function dirname;
+use function file_put_contents;
+use function serialize;
+use function sprintf;
+use SebastianBergmann\CodeCoverage\CodeCoverage;
+use SebastianBergmann\CodeCoverage\Driver\WriteOperationFailedException;
+use SebastianBergmann\CodeCoverage\Util\Filesystem;
+
+final class PHP
+{
+ public function process(CodeCoverage $coverage, ?string $target = null): string
+ {
+ $buffer = sprintf(
+ "<?php
+return \unserialize(<<<'END_OF_COVERAGE_SERIALIZATION'%s%s%sEND_OF_COVERAGE_SERIALIZATION%s);",
+ PHP_EOL,
+ serialize($coverage),
+ PHP_EOL,
+ PHP_EOL
+ );
+
+ if ($target !== null) {
+ Filesystem::createDirectory(dirname($target));
+
+ if (@file_put_contents($target, $buffer) === false) {
+ throw new WriteOperationFailedException($target);
+ }
+ }
+
+ return $buffer;
+ }
+}