bhittani/path

Utilities for working with paths.

0.2.1 2019-10-14 02:18 UTC

This package is auto-updated.

Last update: 2024-04-14 12:32:39 UTC


README

Travis Build Status Packagist Downloads License

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 to getcwd().

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 when isRoot 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.