1<?php
2/*
3 * This file is part of the PHP_CodeCoverage package.
4 *
5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10
11/**
12 * Uses var_export() to write a PHP_CodeCoverage object to a file.
13 *
14 * @since Class available since Release 1.1.0
15 */
16class PHP_CodeCoverage_Report_PHP
17{
18    /**
19     * @param  PHP_CodeCoverage $coverage
20     * @param  string           $target
21     * @return string
22     */
23    public function process(PHP_CodeCoverage $coverage, $target = null)
24    {
25        $filter = $coverage->filter();
26
27        $output = sprintf(
28            '<?php
29$coverage = new PHP_CodeCoverage;
30$coverage->setData(%s);
31$coverage->setTests(%s);
32
33$filter = $coverage->filter();
34$filter->setBlacklistedFiles(%s);
35$filter->setWhitelistedFiles(%s);
36
37return $coverage;',
38            var_export($coverage->getData(true), 1),
39            var_export($coverage->getTests(), 1),
40            var_export($filter->getBlacklistedFiles(), 1),
41            var_export($filter->getWhitelistedFiles(), 1)
42        );
43
44        if ($target !== null) {
45            return file_put_contents($target, $output);
46        } else {
47            return $output;
48        }
49    }
50}
51