<?php
declare(strict_types=1);
/**
* This file is part of phpDocumentor.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @link http://phpdoc.org
*/
namespace phpDocumentor\Reflection\File;
use InvalidArgumentException;
use Override;
use phpDocumentor\Reflection\File;
use function file_exists;
use function file_get_contents;
use function md5_file;
use function sprintf;
/**
* Represents a local file on the file system.
*/
final class LocalFile implements File
{
/**
* Path to the file.
*/
private readonly string $path;
public function __construct(string $path)
{
if (!file_exists($path)) {
throw new InvalidArgumentException(sprintf('File "%s" does not exist', $path));
}
$this->path = $path;
}
/**
* Returns the content of the file as a string.
*/
#[Override]
public function getContents(): string
{
return (string) file_get_contents($this->path);
}
/**
* Returns md5 hash of the file.
*/
#[Override]
public function md5(): string
{
return md5_file($this->path);
}
/**
* Returns a relative path to the file.
*/
#[Override]
public function path(): string
{
return $this->path;
}
}