<?php declare(strict_types=1);
namespace PHPUnit\Util;
use const DIRECTORY_SEPARATOR;
use function array_diff;
use function array_keys;
use function fopen;
use function get_defined_vars;
use function sprintf;
use function stream_resolve_include_path;
final class FileLoader
{
public static function checkAndLoad(string $filename): string
{
$includePathFilename = stream_resolve_include_path($filename);
$localFile = __DIR__ . DIRECTORY_SEPARATOR . $filename;
if (!$includePathFilename ||
$includePathFilename === $localFile ||
!self::isReadable($includePathFilename)) {
throw new Exception(
sprintf('Cannot open file "%s".' . "\n", $filename),