a4blue / path-util
这是一个健壮的跨平台工具,用于标准化、比较和修改文件路径。
1.0.0
2021-12-08 19:18 UTC
Requires
- php: ^7.3|~8.0|~8.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.3
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpstan: ^1.2
- phpunit/phpunit: ^9.5
README
文件路径工具
PHP ^7.3|~8.0|~8.1
此包提供了健壮的跨平台实用函数,用于标准化、比较和修改文件路径和URL。
动机
有些库仍然使用已弃用的原始代码,但不想切换到symfony/filesystem。为了最大限度地减少将这些项目的代码变体复制到这些项目中,我尝试进行硬分支并维护该项目,以便这些项目可以潜在地使用这个库
版本1旨在作为webmozart/file-path的替代品
用法
使用Path
类来处理文件路径
use A4blue\PathUtil\Path; echo Path::canonicalize('/var/www/vhost/webmozart/../config.ini'); // => /var/www/vhost/config.ini echo Path::canonicalize('C:\Programs\Webmozart\..\config.ini'); // => C:/Programs/config.ini echo Path::canonicalize('~/config.ini'); // => /home/webmozart/config.ini echo Path::makeAbsolute('config/config.yml', '/var/www/project'); // => /var/www/project/config/config.yml echo Path::makeRelative('/var/www/project/config/config.yml', '/var/www/project/uploads'); // => ../config/config.yml $paths = array( '/var/www/vhosts/project/httpdocs/config/config.yml', '/var/www/vhosts/project/httpdocs/images/banana.gif', '/var/www/vhosts/project/httpdocs/uploads/../images/nicer-banana.gif', ); Path::getLongestCommonBasePath($paths); // => /var/www/vhosts/project/httpdocs Path::getFilename('/views/index.html.twig'); // => index.html.twig Path::getFilenameWithoutExtension('/views/index.html.twig'); // => index.html Path::getFilenameWithoutExtension('/views/index.html.twig', 'html.twig'); Path::getFilenameWithoutExtension('/views/index.html.twig', '.html.twig'); // => index Path::getExtension('/views/index.html.twig'); // => twig Path::hasExtension('/views/index.html.twig'); // => true Path::hasExtension('/views/index.html.twig', 'twig'); // => true Path::hasExtension('/images/profile.jpg', array('jpg', 'png', 'gif')); // => true Path::changeExtension('/images/profile.jpeg', 'jpg'); // => /images/profile.jpg Path::join('phar://C:/Documents', 'projects/my-project.phar', 'composer.json'); // => phar://C:/Documents/projects/my-project.phar/composer.json Path::getHomeDirectory(); // => /home/webmozart
使用Url
类来处理URL
use A4blue\PathUtil\Url; echo Url::makeRelative('http://example.com/css/style.css', 'http://example.com/puli'); // => ../css/style.css echo Url::makeRelative('http://cdn.example.com/css/style.css', 'http://example.com/puli'); // => http://cdn.example.com/css/style.css
作者
- [Bernhard Schussek] 也称 @webmozart 原始作者
- [Alexander Ratajczak] 也称 @a4blue
贡献
总是欢迎贡献!
许可证
本包的所有内容均受MIT许可证的许可。