jbzoo / path
PHP virtual path library
Installs: 93 293
Dependents: 7
Suggesters: 0
Security: 0
Stars: 7
Watchers: 4
Forks: 1
Open Issues: 0
Requires
- php: ^8.1
- jbzoo/data: ^7.1
- jbzoo/utils: ^7.1
Requires (Dev)
- jbzoo/toolbox-dev: ^7.1
README
Create memory based aliases for your project file system.
Usage
use JBZoo\Path\Path; // Get path instance. $path = new Path(); // Setup root directory. $path->setRoot(__DIR__); // Add paths. $path ->add(__DIR__ . '/styles/css', 'css') ->add(__DIR__ . '/simple/styles/css', 'css') // Add array paths. ->add([ __DIR__ . 'styles/folder/less', __DIR__ . 'theme/styles/less', ], 'less'); /** * Add paths by virtual. * If you already added at least one one way, you can use the virtual paths */ $path->add('less:assets/less'); $path->add('css:assets/less'); // Get added path list by key. var_dump($path->getPaths('css:')); var_dump($path->getPaths('less:')); /** * Get full path for the first file found, if file exits. */ echo $path->get('css:styles.css'); // result: /jbzoo/styles/css/styles.css echo $path->get('less:path/to/styles.less'); // result: /jbzoo/styles/folder/less/path/to/styles.less /** * Get url for the first file found, if file exits. * If - "C:/Server/jbzoo" is root dir we have... */ $path->url('css:styles.css'); // http://my-site.com/styles/css/styles.css $path->url('less:path/to/styles.less'); // http://my-site.com/styles/css/folder/less/path/to/styles.less echo '<link rel="stylesheet" href="' . $path->url('css:styles.css') . '">'; // Clean path. Path::clean('path\\to//simple\\folder'); // result: 'path/to/simple/folder'
Summary benchmark info (execution time)
See details here
Unit tests and check code style
make update make test-all
License
MIT