eloquent/pathogen API
Class

Eloquent\Pathogen\Windows\RelativeWindowsPath

class RelativeWindowsPath extends RelativePath implements RelativeFileSystemPathInterface, RelativeWindowsPathInterface

Represents a relative Windows path.

Constants

ATOM_SEPARATOR

The character used to separate path atoms.

EXTENSION_SEPARATOR

The character used to separate path name atoms.

PARENT_ATOM

The atom used to represent 'parent'.

SELF_ATOM

The atom used to represent 'self'.

Methods

static RelativePathInterface fromString(string $path)

Creates a new relative path instance from its string representation.

from RelativePath
static RelativePathInterface fromAtoms(mixed<string> $atoms, boolean|null $hasTrailingSeparator = null)

Creates a new relative path from a set of path atoms.

from RelativePath
AbsolutePathInterface toAbsolute()

Get an absolute version of this path.

RelativePathInterface toRelative()

Get a relative version of this path.

from RelativePath
boolean isSelf()

Determine whether this path is the self path.

AbsolutePathInterface resolveAgainst(AbsolutePathInterface $basePath)

Resolve this path against the supplied path.

from RelativePath
static WindowsPathInterface fromDriveAndAtoms(mixed<string> $atoms, string|null $drive = null, boolean|null $isAnchored = null, boolean|null $hasTrailingSeparator = null)

Creates a new relative Windows path from a set of path atoms and a drive specifier.

__construct(mixed<string> $atoms, string|null $drive = null, boolean|null $isAnchored = null, boolean|null $hasTrailingSeparator = null)

Construct a new relative Windows path instance.

string|null drive()

Get this path's drive specifier.

boolean hasDrive()

Determine whether this path has a drive specifier.

boolean matchesDrive(string|null $drive)

Returns true if this path's drive specifier is equal to the supplied drive specifier.

boolean matchesDriveOrNull(string|null $drive)

Returns true if this path's drive specifier matches the supplied drive specifier, or if either drive specifier is null.

string|null joinDrive($drive)

Joins the supplied drive specifier to this path.

boolean isAnchored()

Returns true if this path is 'anchored' to the drive root.

string string()

Generate a string representation of this path.

PathInterface join(RelativePathInterface $path)

Joins the supplied path to this path.

Details

in RelativePath at line 27
static public RelativePathInterface fromString(string $path)

Creates a new relative path instance from its string representation.

Parameters

string $path The string representation of the relative path.

Return Value

RelativePathInterface The newly created relative path instance.

Exceptions

NonRelativePathException If the supplied string represents a non-relative path.

in RelativePath at line 47
static public RelativePathInterface fromAtoms(mixed<string> $atoms, boolean|null $hasTrailingSeparator = null)

Creates a new relative path from a set of path atoms.

Parameters

mixed<string> $atoms The path atoms.
boolean|null $hasTrailingSeparator True if the path has a trailing separator.

Return Value

RelativePathInterface The newly created relative path.

Exceptions

InvalidPathAtomExceptionInterface If any of the supplied atoms are invalid.
InvalidPathStateException If the supplied arguments would produce an invalid path.

at line 270
public AbsolutePathInterface toAbsolute()

Get an absolute version of this path.

If this path is relative, a new absolute path with equivalent atoms will be returned. Otherwise, this path will be retured unaltered.

Return Value

AbsolutePathInterface An absolute version of this path.

Exceptions

InvalidPathStateException If absolute conversion is not possible for this path.

in RelativePath at line 85
public RelativePathInterface toRelative()

Get a relative version of this path.

If this path is absolute, a new relative path with equivalent atoms will be returned. Otherwise, this path will be retured unaltered.

Return Value

RelativePathInterface A relative version of this path.

Exceptions

EmptyPathException If this path has no atoms.

at line 214
public boolean isSelf()

Determine whether this path is the self path.

The self path is a relative path with a single self atom (i.e. a dot '.').

Return Value

boolean True if this path is the self path.

in RelativePath at line 114
public AbsolutePathInterface resolveAgainst(AbsolutePathInterface $basePath)

Resolve this path against the supplied path.

Parameters

AbsolutePathInterface $basePath The path to resolve against.

Return Value

AbsolutePathInterface The resolved path.

at line 44
static public WindowsPathInterface fromDriveAndAtoms(mixed<string> $atoms, string|null $drive = null, boolean|null $isAnchored = null, boolean|null $hasTrailingSeparator = null)

Creates a new relative Windows path from a set of path atoms and a drive specifier.

Parameters

mixed<string> $atoms The path atoms.
string|null $drive The drive specifier.
boolean|null $isAnchored True if the path is anchored to the drive root.
boolean|null $hasTrailingSeparator True if the path has a trailing separator.

Return Value

WindowsPathInterface The newly created path instance.

Exceptions

InvalidPathAtomExceptionInterface If any of the supplied atoms are invalid.

at line 70
public __construct(mixed<string> $atoms, string|null $drive = null, boolean|null $isAnchored = null, boolean|null $hasTrailingSeparator = null)

Construct a new relative Windows path instance.

Parameters

mixed<string> $atoms The path atoms.
string|null $drive The drive specifier.
boolean|null $isAnchored True if this path is anchored to the drive root.
boolean|null $hasTrailingSeparator True if this path has a trailing separator.

Exceptions

EmptyPathException If the path atoms are empty, and the path is not anchored.
InvalidPathAtomExceptionInterface If any of the supplied path atoms are invalid.

at line 107
public string|null drive()

Get this path's drive specifier.

Absolute Windows paths always have a drive specifier, and will never return null for this method.

Return Value

string|null The drive specifier, or null if this path does not have a drive specifier.

at line 120
public boolean hasDrive()

Determine whether this path has a drive specifier.

Absolute Windows paths always have a drive specifier, and will always return true for this method.

Return Value

boolean True is this path has a drive specifier.

at line 135
public boolean matchesDrive(string|null $drive)

Returns true if this path's drive specifier is equal to the supplied drive specifier.

This method is not case sensitive.

Parameters

string|null $drive The driver specifier to compare to.

Return Value

boolean True if the drive specifiers are equal.

at line 150
public boolean matchesDriveOrNull(string|null $drive)

Returns true if this path's drive specifier matches the supplied drive specifier, or if either drive specifier is null.

This method is not case sensitive.

Parameters

string|null $drive The driver specifier to compare to.

Return Value

boolean True if the drive specifiers match, or either drive specifier is null.

at line 164
public string|null joinDrive($drive)

Joins the supplied drive specifier to this path.

Parameters

$drive

Return Value

string|null $drive The drive specifier to use, or null to remove the drive specifier.

at line 199
public boolean isAnchored()

Returns true if this path is 'anchored' to the drive root.

This is a special case to represent almost-absolute Windows paths where the drive is not present, but the path is still specified as starting from the root of the drive.

For example, the Windows path \path\to\foo represents the path C:\path\to\foo when resolved against the C: drive.

Return Value

boolean True if this path is anchored.

at line 226
public string string()

Generate a string representation of this path.

Return Value

string A string representation of this path.

at line 243
public PathInterface join(RelativePathInterface $path)

Joins the supplied path to this path.

Parameters

RelativePathInterface $path The path whose atoms should be joined to this path.

Return Value

PathInterface A new path with the supplied path suffixed to this path.

Exceptions

DriveMismatchException If the supplied path has a drive that does not match this path's drive.