# code-snippets/4.0.0-beta.2/vendor/typisttech/imposter/src/Filesystem.php

Code Snippets, version 4.0.0-beta.2. 95 lines.

- Page: https://pluginprobe.com/plugins/code-snippets/4.0.0-beta.2/code/vendor/typisttech/imposter/src/Filesystem.php
- Raw: https://pluginprobe.com/plugins/code-snippets/4.0.0-beta.2/raw/vendor/typisttech/imposter/src/Filesystem.php
- Modified: 2025-10-16T19:08:06+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/code-snippets/4.0.0-beta.2/code/vendor/typisttech/imposter/src/Filesystem.php#L10-L20`.

```php
<?php

declare(strict_types=1);

namespace TypistTech\Imposter;

use FilesystemIterator;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;
use RuntimeException;

class Filesystem implements FilesystemInterface
{
    /**
     * @param string $path
     *
     * @return \SplFileInfo[]
     * @throws \UnexpectedValueException
     */
    public function allFiles(string $path): array
    {
        $iterator = new RecursiveIteratorIterator(
            new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS)
        );

        return iterator_to_array($iterator);
    }

    /**
     * Extract the parent directory from a file path.
     *
     * @param  string $path
     *
     * @return string
     */
    public function dirname(string $path): string
    {
        return pathinfo($path, PATHINFO_DIRNAME);
    }

    /**
     * Get the contents of a file.
     *
     * @param  string $path
     *
     * @return string
     * @throws \RuntimeException
     */
    public function get(string $path): string
    {
        if (! $this->isFile($path)) {
            throw new RuntimeException('File does not exist at path ' . $path);
        }

        return file_get_contents($path);
    }

    /**
     * Determine if the given path is a file.
     *
     * @param  string $path
     *
     * @return bool
     */
    public function isFile(string $path): bool
    {
        return is_file($path);
    }

    /**
     * Determine if the given path is a directory.
     *
     * @param  string $path
     *
     * @return bool
     */
    public function isDir(string $path): bool
    {
        return is_dir($path);
    }

    /**
     * Write the contents of a file.
     *
     * @param  string $path
     * @param  string $contents
     *
     * @return int|false
     */
    public function put(string $path, string $contents)
    {
        return file_put_contents($path, $contents);
    }
}

```
