Download the PHP package karelwintersky/arris.entity.path without Composer
On this page you can find all versions of the php package karelwintersky/arris.entity.path. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download karelwintersky/arris.entity.path
More information about karelwintersky/arris.entity.path
Files in karelwintersky/arris.entity.path
Package arris.entity.path
Short Description Arris µFramework: Path builder
License MIT
Informations about the package arris.entity.path
Arris\Entity\Path
Утилитарный класс для построения и манипуляции файловыми путями. Поддерживает как обычные пути файловой системы, так и URL-схемы (https://, ftp:// и т.д.).
Установка
Класс входит в состав пакета arris/entity. Подключается через автозагрузчик Composer:
Быстрый старт
Создание экземпляра
Конструктор
Принимает путь в одном из трёх форматов:
Автоопределение флагов из строки:
| Входная строка | isAbsolutePath |
hasTrailingSeparator |
|---|---|---|
/foo/bar |
true |
false |
foo/bar/ |
false |
true |
/foo/bar/ |
true |
true |
foo/bar |
false/null |
false |
` (пустая) |true|null` |
Множественные слэши автоматически схлопываются: foo//bar///baz → foo/bar/baz.
Фабричный метод create()
Эквивалентен конструктору, но удобнее для цепочек вызовов:
Методы
Получение строки
toString(bool $hasTrailingSeparator = false): string
Экспортирует путь в строку. Аргумент позволяет принудительно добавить завершающий разделитель:
Внимание: вызов
toString(true)мутирует внутренний флаг$hasTrailingSeparator.
__toString(): string
Псевдоним toString() без аргументов. Позволяет использовать объект в строковом контексте:
Соединение путей
join(mixed $data): Path
Возвращает новый экземпляр с добавленным сегментом. Наследует флаги isAbsolutePath и hasTrailingSeparator из текущего объекта.
joinName(mixed $data): Path
Аналог join(), но принудительно устанавливает hasTrailingSeparator = false. Удобно для добавления имени файла:
Установка флагов
Все методы мутируют текущий объект и возвращают $this для цепочек вызовов.
setAbsolutePath(bool $is_present = true): Path
setTrailingSeparator(bool $is_present = true): Path
setOptions(array $options): Path
Устанавливает сразу несколько флагов. Поддерживает ключи isAbsolute и hasTrailingSeparator:
Неизвестные ключи игнорируются. Значение
nullтакже игнорируется (ключ должен присутствовать с непустым значением).
Проверка файловой системы
isPresent(): bool
Возвращает true, если по данному пути существует директория.
isFile(): bool
Возвращает true, если путь указывает на существующий читаемый файл.
makePath(int $access_rights = 0777): bool
Создаёт директорию рекурсивно (аналог mkdir -p). Возвращает true при успехе или если директория уже существует.
Внутренние свойства
| Свойство | Тип | Описание |
|---|---|---|
$atoms |
array |
Массив сегментов пути (['var', 'www', 'html']) |
$isAbsolutePath |
?bool |
Путь начинается с / |
$hasTrailingSeparator |
?bool |
Путь заканчивается на / |
Поддержка URL
Класс содержит внутренний механизм («костыль») для работы с URL-схемами: :// при разборе заменяется на :||, а при экспорте возвращается обратно. Это позволяет использовать Path для сборки URL, хотя для полноценной работы с URL рекомендуется использовать специализированный класс.
Совместимость и требования
- PHP 8.2+
- Реализует интерфейс
PathInterface - Разделитель сегментов:
DIRECTORY_SEPARATOR(на Unix —/, на Windows —\)
Известные особенности поведения
toString(true)мутирует объект — флагhasTrailingSeparatorизменяется внутри. Если нужно неизменяемое поведение, используйтеPath::create($this)->toString(true).- Сегмент
.(точка) превращается во внутренний пустой атом''. При экспорте двойной разделитель схлопывается — итоговая строка остаётся корректной. - Пустой атом (
'') в середине массива сегментов при проходе черезvalidateAtomне добавляется в$atoms.
Лицензия
MIT