| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | <?php/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */namespace Symfony\Component\Finder;/** * Extends \SplFileInfo to support relative paths. * * @author Fabien Potencier <fabien@symfony.com> */class SplFileInfo extends \SplFileInfo{    private $relativePath;    private $relativePathname;    /**     * @param string $file             The file name     * @param string $relativePath     The relative path     * @param string $relativePathname The relative path name     */    public function __construct(string $file, string $relativePath, string $relativePathname)    {        parent::__construct($file);        $this->relativePath = $relativePath;        $this->relativePathname = $relativePathname;    }    /**     * Returns the relative path.     *     * This path does not contain the file name.     *     * @return string the relative path     */    public function getRelativePath()    {        return $this->relativePath;    }    /**     * Returns the relative path name.     *     * This path contains the file name.     *     * @return string the relative path name     */    public function getRelativePathname()    {        return $this->relativePathname;    }    public function getFilenameWithoutExtension(): string    {        $filename = $this->getFilename();        return pathinfo($filename, \PATHINFO_FILENAME);    }    /**     * Returns the contents of the file.     *     * @return string the contents of the file     *     * @throws \RuntimeException     */    public function getContents()    {        set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; });        $content = file_get_contents($this->getPathname());        restore_error_handler();        if (false === $content) {            throw new \RuntimeException($error);        }        return $content;    }}
 |