eloquent/pathogen API
Interface

Eloquent\Pathogen\RelativePathInterface

interface RelativePathInterface implements PathInterface

The interface implemented by relative paths.

Methods

array<integer,string> atoms()

Get the atoms of this path.

from PathInterface
string atomAt(integer $index)

Get a single path atom by index.

from PathInterface
mixed atomAtDefault(integer $index, mixed $default = null)

Get a single path atom by index, falling back to a default if the index is undefined.

from PathInterface
array<integer,string> sliceAtoms(integer $index, integer|null $length = null)

Get a subset of the atoms of this path.

from PathInterface
boolean hasAtoms()

Determine if this path has any atoms.

from PathInterface
boolean hasTrailingSeparator()

Determine if this path has a trailing separator.

from PathInterface
string string()

Generate a string representation of this path.

from PathInterface
string __toString()

Generate a string representation of this path.

from PathInterface
string name()

Get this path's name.

from PathInterface
array<integer,string> nameAtoms()

Get this path's name atoms.

from PathInterface
string nameAtomAt(integer $index)

Get a single path name atom by index.

from PathInterface
mixed nameAtomAtDefault(integer $index, mixed $default = null)

Get a single path name atom by index, falling back to a default if the index is undefined.

from PathInterface
array<integer,string> sliceNameAtoms(integer $index, integer|null $length = null)

Get a subset of this path's name atoms.

from PathInterface
string nameWithoutExtension()

Get this path's name, excluding the last extension.

from PathInterface
string namePrefix()

Get this path's name, excluding all extensions.

from PathInterface
string|null nameSuffix()

Get all of this path's extensions.

from PathInterface
string|null extension()

Get this path's last extension.

from PathInterface
boolean hasExtension()

Determine if this path has any extensions.

from PathInterface
boolean contains(string $needle, boolean|null $caseSensitive = null)

Determine if this path contains a substring.

from PathInterface
boolean startsWith(string $needle, boolean|null $caseSensitive = null)

Determine if this path starts with a substring.

from PathInterface
boolean endsWith(string $needle, boolean|null $caseSensitive = null)

Determine if this path ends with a substring.

from PathInterface
boolean matches(string $pattern, boolean|null $caseSensitive = null, integer|null $flags = null)

Determine if this path matches a wildcard pattern.

from PathInterface
boolean matchesRegex(string $pattern, array $matches = null, integer|null $flags = null, integer|null $offset = null)

Determine if this path matches a regular expression.

from PathInterface
boolean nameContains(string $needle, boolean|null $caseSensitive = null)

Determine if this path's name contains a substring.

from PathInterface
boolean nameStartsWith(string $needle, boolean|null $caseSensitive = null)

Determine if this path's name starts with a substring.

from PathInterface
boolean nameMatches(string $pattern, boolean|null $caseSensitive = null, integer|null $flags = null)

Determine if this path's name matches a wildcard pattern.

from PathInterface
boolean nameMatchesRegex(string $pattern, array $matches = null, integer|null $flags = null, integer|null $offset = null)

Determine if this path's name matches a regular expression.

from PathInterface
PathInterface parent(integer|null $numLevels = null)

Get the parent of this path a specified number of levels up.

from PathInterface
PathInterface stripTrailingSlash()

Strips the trailing slash from this path.

from PathInterface
PathInterface stripExtension()

Strips the last extension from this path.

from PathInterface
PathInterface stripNameSuffix()

Strips all extensions from this path.

from PathInterface
PathInterface joinAtoms($atom)

Joins one or more atoms to this path.

from PathInterface
PathInterface joinAtomSequence(mixed<string> $atoms)

Joins a sequence of atoms to this path.

from PathInterface
PathInterface join(RelativePathInterface $path)

Joins the supplied path to this path.

from PathInterface
PathInterface joinTrailingSlash()

Adds a trailing slash to this path.

from PathInterface
PathInterface joinExtensions($extension)

Joins one or more extensions to this path.

from PathInterface
PathInterface joinExtensionSequence(mixed<string> $extensions)

Joins a sequence of extensions to this path.

from PathInterface
PathInterface suffixName(string $suffix)

Suffixes this path's name with a supplied string.

from PathInterface
PathInterface prefixName(string $prefix)

Prefixes this path's name with a supplied string.

from PathInterface
PathInterface replace(integer $index, mixed<string> $replacement, integer|null $length = null)

Replace a section of this path with the supplied atom sequence.

from PathInterface
PathInterface replaceName(string $name)

Replace this path's name.

from PathInterface
PathInterface replaceNameWithoutExtension(string $nameWithoutExtension)

Replace this path's name, but keep the last extension.

from PathInterface
PathInterface replaceNamePrefix(string $namePrefix)

Replace this path's name, but keep any extensions.

from PathInterface
PathInterface replaceNameSuffix(string|null $nameSuffix)

Replace all of this path's extensions.

from PathInterface
PathInterface replaceExtension(string|null $extension)

Replace this path's last extension.

from PathInterface
PathInterface replaceNameAtoms(integer $index, mixed<string> $replacement, integer|null $length = null)

Replace a section of this path's name with the supplied name atom sequence.

from PathInterface
AbsolutePathInterface toAbsolute()

Get an absolute version of this path.

from PathInterface
RelativePathInterface toRelative()

Get a relative version of this path.

from PathInterface
PathInterface normalize()

Normalize this path to its most canonical form.

from PathInterface
boolean isSelf()

Determine whether this path is the self path.

AbsolutePathInterface resolveAgainst(AbsolutePathInterface $basePath)

Resolve this path against the supplied path.

Details

in PathInterface at line 26
public array<integer,string> atoms()

Get the atoms of this path.

For example, the path '/foo/bar' has the atoms 'foo' and 'bar'.

Return Value

array<integer,string> The atoms of this path as an array of strings.

in PathInterface at line 36
public string atomAt(integer $index)

Get a single path atom by index.

Parameters

integer $index The index to search for.

Return Value

string The path atom.

Exceptions

UndefinedAtomException If the index does not exist in this path's atoms.

in PathInterface at line 47
public mixed atomAtDefault(integer $index, mixed $default = null)

Get a single path atom by index, falling back to a default if the index is undefined.

Parameters

integer $index The index to search for.
mixed $default The default value to return if no atom is defined for the supplied index.

Return Value

mixed The path atom, or $default if no atom is defined for the supplied index.

in PathInterface at line 57
public array<integer,string> sliceAtoms(integer $index, integer|null $length = null)

Get a subset of the atoms of this path.

Parameters

integer $index The index of the first atom.
integer|null $length The maximum number of atoms.

Return Value

array<integer,string> An array of strings representing the subset of path atoms.

in PathInterface at line 64
public boolean hasAtoms()

Determine if this path has any atoms.

Return Value

boolean True if this path has at least one atom.

in PathInterface at line 71
public boolean hasTrailingSeparator()

Determine if this path has a trailing separator.

Return Value

boolean True if this path has a trailing separator.

in PathInterface at line 78
public string string()

Generate a string representation of this path.

Return Value

string A string representation of this path.

in PathInterface at line 85
public string __toString()

Generate a string representation of this path.

Return Value

string A string representation of this path.

in PathInterface at line 92
public string name()

Get this path's name.

Return Value

string The last path atom if one exists, otherwise an empty string.

in PathInterface at line 101
public array<integer,string> nameAtoms()

Get this path's name atoms.

For example, the path name 'foo.bar' has the atoms 'foo' and 'bar'.

Return Value

array<integer,string> The atoms of this path's name as an array of strings.

in PathInterface at line 111
public string nameAtomAt(integer $index)

Get a single path name atom by index.

Parameters

integer $index The index to search for.

Return Value

string The path name atom.

Exceptions

UndefinedAtomException If the index does not exist in this path's name atoms.

in PathInterface at line 122
public mixed nameAtomAtDefault(integer $index, mixed $default = null)

Get a single path name atom by index, falling back to a default if the index is undefined.

Parameters

integer $index The index to search for.
mixed $default The default value to return if no atom is defined for the supplied index.

Return Value

mixed The path name atom, or $default if no atom is defined for the supplied index.

in PathInterface at line 132
public array<integer,string> sliceNameAtoms(integer $index, integer|null $length = null)

Get a subset of this path's name atoms.

Parameters

integer $index The index of the first atom.
integer|null $length The maximum number of atoms.

Return Value

array<integer,string> An array of strings representing the subset of path name atoms.

in PathInterface at line 139
public string nameWithoutExtension()

Get this path's name, excluding the last extension.

Return Value

string The last atom of this path, excluding the last extension. If this path has no atoms, an empty string is returned.

in PathInterface at line 146
public string namePrefix()

Get this path's name, excluding all extensions.

Return Value

string The last atom of this path, excluding any extensions. If this path has no atoms, an empty string is returned.

in PathInterface at line 153
public string|null nameSuffix()

Get all of this path's extensions.

Return Value

string|null The extensions of this path's last atom. If the last atom has no extensions, or this path has no atoms, this method will return null.

in PathInterface at line 160
public string|null extension()

Get this path's last extension.

Return Value

string|null The last extension of this path's last atom. If the last atom has no extensions, or this path has no atoms, this method will return null.

in PathInterface at line 167
public boolean hasExtension()

Determine if this path has any extensions.

Return Value

boolean True if this path's last atom has any extensions.

in PathInterface at line 177
public boolean contains(string $needle, boolean|null $caseSensitive = null)

Determine if this path contains a substring.

Parameters

string $needle The substring to search for.
boolean|null $caseSensitive True if case sensitive.

Return Value

boolean True if this path contains the substring.

in PathInterface at line 187
public boolean startsWith(string $needle, boolean|null $caseSensitive = null)

Determine if this path starts with a substring.

Parameters

string $needle The substring to search for.
boolean|null $caseSensitive True if case sensitive.

Return Value

boolean True if this path starts with the substring.

in PathInterface at line 197
public boolean endsWith(string $needle, boolean|null $caseSensitive = null)

Determine if this path ends with a substring.

Parameters

string $needle The substring to search for.
boolean|null $caseSensitive True if case sensitive.

Return Value

boolean True if this path ends with the substring.

in PathInterface at line 208
public boolean matches(string $pattern, boolean|null $caseSensitive = null, integer|null $flags = null)

Determine if this path matches a wildcard pattern.

Parameters

string $pattern The pattern to check against.
boolean|null $caseSensitive True if case sensitive.
integer|null $flags Additional flags.

Return Value

boolean True if this path matches the pattern.

in PathInterface at line 220
public boolean matchesRegex(string $pattern, array $matches = null, integer|null $flags = null, integer|null $offset = null)

Determine if this path matches a regular expression.

Parameters

string $pattern The pattern to check against.
array $matches Populated with the pattern matches.
integer|null $flags Additional flags.
integer|null $offset Start searching from this byte offset.

Return Value

boolean True if this path matches the pattern.

in PathInterface at line 235
public boolean nameContains(string $needle, boolean|null $caseSensitive = null)

Determine if this path's name contains a substring.

Parameters

string $needle The substring to search for.
boolean|null $caseSensitive True if case sensitive.

Return Value

boolean True if this path's name contains the substring.

in PathInterface at line 245
public boolean nameStartsWith(string $needle, boolean|null $caseSensitive = null)

Determine if this path's name starts with a substring.

Parameters

string $needle The substring to search for.
boolean|null $caseSensitive True if case sensitive.

Return Value

boolean True if this path's name starts with the substring.

in PathInterface at line 256
public boolean nameMatches(string $pattern, boolean|null $caseSensitive = null, integer|null $flags = null)

Determine if this path's name matches a wildcard pattern.

Parameters

string $pattern The pattern to check against.
boolean|null $caseSensitive True if case sensitive.
integer|null $flags Additional flags.

Return Value

boolean True if this path's name matches the pattern.

in PathInterface at line 268
public boolean nameMatchesRegex(string $pattern, array $matches = null, integer|null $flags = null, integer|null $offset = null)

Determine if this path's name matches a regular expression.

Parameters

string $pattern The pattern to check against.
array $matches Populated with the pattern matches.
integer|null $flags Additional flags.
integer|null $offset Start searching from this byte offset.

Return Value

boolean True if this path's name matches the pattern.

in PathInterface at line 282
public PathInterface parent(integer|null $numLevels = null)

Get the parent of this path a specified number of levels up.

Parameters

integer|null $numLevels The number of levels up. Defaults to 1.

Return Value

PathInterface The parent of this path $numLevels up.

in PathInterface at line 289
public PathInterface stripTrailingSlash()

Strips the trailing slash from this path.

Return Value

PathInterface A new path instance with the trailing slash removed from this path. If this path has no trailing slash, the path is returned unmodified.

in PathInterface at line 296
public PathInterface stripExtension()

Strips the last extension from this path.

Return Value

PathInterface A new path instance with the last extension removed from this path. If this path has no extensions, the path is returned unmodified.

in PathInterface at line 303
public PathInterface stripNameSuffix()

Strips all extensions from this path.

Return Value

PathInterface A new path instance with all extensions removed from this path. If this path has no extensions, the path is returned unmodified.

in PathInterface at line 314
public PathInterface joinAtoms($atom)

Joins one or more atoms to this path.

Parameters

$atom

Return Value

PathInterface A new path with the supplied atom(s) suffixed to this path.

Exceptions

InvalidPathAtomExceptionInterface If any joined atoms are invalid.

in PathInterface at line 324
public PathInterface joinAtomSequence(mixed<string> $atoms)

Joins a sequence of atoms to this path.

Parameters

mixed<string> $atoms The path atoms to append.

Return Value

PathInterface A new path with the supplied sequence of atoms suffixed to this path.

Exceptions

InvalidPathAtomExceptionInterface If any joined atoms are invalid.

in PathInterface at line 333
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.

in PathInterface at line 340
public PathInterface joinTrailingSlash()

Adds a trailing slash to this path.

Return Value

PathInterface A new path instance with a trailing slash suffixed to this path.

in PathInterface at line 351
public PathInterface joinExtensions($extension)

Joins one or more extensions to this path.

Parameters

$extension

Return Value

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

Exceptions

InvalidPathAtomExceptionInterface If the suffixed extensions cause the atom to be invalid.

in PathInterface at line 361
public PathInterface joinExtensionSequence(mixed<string> $extensions)

Joins a sequence of extensions to this path.

Parameters

mixed<string> $extensions The extensions to append.

Return Value

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

Exceptions

InvalidPathAtomExceptionInterface If the suffixed extensions cause the atom to be invalid.

in PathInterface at line 371
public PathInterface suffixName(string $suffix)

Suffixes this path's name with a supplied string.

Parameters

string $suffix The string to suffix to the path name.

Return Value

PathInterface A new path instance with the supplied string suffixed to the last path atom.

Exceptions

InvalidPathAtomExceptionInterface If the suffix causes the atom to be invalid.

in PathInterface at line 381
public PathInterface prefixName(string $prefix)

Prefixes this path's name with a supplied string.

Parameters

string $prefix The string to prefix to the path name.

Return Value

PathInterface A new path instance with the supplied string prefixed to the last path atom.

Exceptions

InvalidPathAtomExceptionInterface If the prefix causes the atom to be invalid.

in PathInterface at line 392
public PathInterface replace(integer $index, mixed<string> $replacement, integer|null $length = null)

Replace a section of this path with the supplied atom sequence.

Parameters

integer $index The start index of the replacement.
mixed<string> $replacement The replacement atom sequence.
integer|null $length The number of atoms to replace. If $length is null, the entire remainder of the path will be replaced.

Return Value

PathInterface A new path instance that has a portion of this path's atoms replaced with a different sequence of atoms.

in PathInterface at line 401
public PathInterface replaceName(string $name)

Replace this path's name.

Parameters

string $name The new path name.

Return Value

PathInterface A new path instance with the supplied name replacing the existing one.

in PathInterface at line 410
public PathInterface replaceNameWithoutExtension(string $nameWithoutExtension)

Replace this path's name, but keep the last extension.

Parameters

string $nameWithoutExtension The replacement string.

Return Value

PathInterface A new path instance with the supplied name replacing the portion of the existing name preceding the last extension.

in PathInterface at line 419
public PathInterface replaceNamePrefix(string $namePrefix)

Replace this path's name, but keep any extensions.

Parameters

string $namePrefix The replacement string.

Return Value

PathInterface A new path instance with the supplied name prefix replacing the existing one.

in PathInterface at line 428
public PathInterface replaceNameSuffix(string|null $nameSuffix)

Replace all of this path's extensions.

Parameters

string|null $nameSuffix The replacement string, or null to remove all extensions.

Return Value

PathInterface A new path instance with the supplied name suffix replacing the existing one.

in PathInterface at line 437
public PathInterface replaceExtension(string|null $extension)

Replace this path's last extension.

Parameters

string|null $extension The replacement string, or null to remove the last extension.

Return Value

PathInterface A new path instance with the supplied extension replacing the existing one.

in PathInterface at line 449
public PathInterface replaceNameAtoms(integer $index, mixed<string> $replacement, integer|null $length = null)

Replace a section of this path's name with the supplied name atom sequence.

Parameters

integer $index The start index of the replacement.
mixed<string> $replacement The replacement name atom sequence.
integer|null $length The number of atoms to replace. If $length is null, the entire remainder of the path name will be replaced.

Return Value

PathInterface A new path instance that has a portion of this name's atoms replaced with a different sequence of atoms.

in PathInterface at line 460
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 PathInterface at line 471
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.

in PathInterface at line 478
public PathInterface normalize()

Normalize this path to its most canonical form.

Return Value

PathInterface The normalized path.

at line 27
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.

at line 36
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.