123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- declare(strict_types=1);
- /*
- * This file is part of PHP CS Fixer.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- * Dariusz Rumiński <dariusz.ruminski@gmail.com>
- *
- * This source file is subject to the MIT license that is bundled
- * with this source code in the file LICENSE.
- */
- namespace PhpCsFixer\Cache;
- /**
- * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
- *
- * @readonly
- *
- * @internal
- */
- final class Directory implements DirectoryInterface
- {
- private string $directoryName;
- public function __construct(string $directoryName)
- {
- $this->directoryName = $directoryName;
- }
- public function getRelativePathTo(string $file): string
- {
- $file = $this->normalizePath($file);
- if (
- '' === $this->directoryName
- || 0 !== stripos($file, $this->directoryName.\DIRECTORY_SEPARATOR)
- ) {
- return $file;
- }
- return substr($file, \strlen($this->directoryName) + 1);
- }
- private function normalizePath(string $path): string
- {
- return str_replace(['\\', '/'], \DIRECTORY_SEPARATOR, $path);
- }
- }
|