bhittani / path
Utilities for working with paths.
Requires
- php: >=5.6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
- phpunit/phpunit: <8
This package is auto-updated.
Last update: 2024-11-14 13:50:44 UTC
README
Utilities for working with paths in PHP.
Install
You may install this package using composer.
$ composer require bhittani/path --prefer-dist
Usage
This packages offers some helpful utilities when working with paths.
<?php require_once __DIR__ . '/vendor/autoload.php'; $path = new \Bhittani\Path\Path(); // Use the API calls as demonstrated below.
Sanitize
Convert back slashes to forward slashes.
echo $path->sanitize('\foo/bar\baz'); // '/foo/bar/baz'
Join
Join partial paths.
echo $path->join('foo', './bar', '../baz/..'); // 'foo'
This will also sanitize the paths under the hood.
Absolute
Convert a path to an absolute path.
echo $path->absolute('/foo'); // '/foo' echo $path->absolute('foo'); // getcwd().'/foo' echo $path->absolute('/foo', true); // getcwd().'/foo'
The second (
boolean
) argument will forcely append the path togetcwd()
.
Normalize
Normalize is identical to join
but it ensures an absolute path.
echo $path->normalize('/foo', 'bar/', '../baz/'); // '/foo/baz' echo $path->normalize('foo', './bar', '/../baz'); // getcwd().'/foo/baz'
Is Absolute
Determines whether a path is absolute or not.
echo $path->isAbsolute('/foo/bar'); // true echo $path->isAbsolute('foo/bar'); // false
Is Root
Determines whether a path is a root or not.
echo $path->isRoot('/'); // true echo $path->isRoot('c:/'); // true echo $path->isRoot('http://'); // true echo $path->isRoot('http://example.com'); // true echo $path->isRoot('/foo'); // false
Any root path is also an absolute path. So
isAbsolute
will always be true whenisRoot
is true.
Static Access
A StaticPath
class is available.
<?php require_once __DIR__ . '/vendor/autoload.php'; use Bhittani\Path\StaticPath; echo StaticPath::normalize('/foo/', '/bar/'); // '/foo/bar'
Any of the public methods may be invoked by static access.
Changelog
Please see CHANGELOG for more information on what has changed.
Testing
git clone https://github.com/kamalkhan/path cd path composer install composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email shout@bhittani.com
instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see the License File for more information.