Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace Mautic\CoreBundle\Helper; | |
use Symfony\Component\Filesystem\Exception\IOException; | |
use Symfony\Component\Filesystem\Filesystem as SymfonyFilesystem; | |
/** | |
* Extends Symfony's filesystem but adding the readFile method that we need to abstract for unit tests. | |
* Using file_get_contents() directly makes unit testing impossible. | |
* | |
* @see https://github.com/symfony/filesystem/pull/4 | |
*/ | |
class Filesystem extends SymfonyFilesystem | |
{ | |
/** | |
* Read file and return contents. | |
* | |
* @throws Exception\IOException | |
*/ | |
public function readFile(string $filename): string | |
{ | |
if (false === $source = @file_get_contents($filename)) { | |
throw new IOException(sprintf('Failed to read "%s" because source file could not be opened for reading.', $filename), 0, null, $filename); | |
} | |
return $source; | |
} | |
} | |