kwebble / directory-folder-path
用于操作表示目录/文件夹/路径名称的字符串的实用程序
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: ~6.0
This package is not auto-updated.
Last update: 2020-08-07 19:49:49 UTC
README
开源PHP软件,用于操作表示目录/文件夹/路径名称的字符串。
版权所有 © 2015, 2018 Rob Schlüter
根据MIT许可证授权。有关详细信息,请参阅LICENSE文件。
描述
这个小软件只做一件事:操作表示路径的文件夹名称的字符串。您可以添加和删除此路径的文件夹。
在表示路径的每个字符串中,您都可以使用 / 或 \ 作为文件夹分隔符。从 getPath 获得的输出始终使用 /,因此它与使用路径的PHP函数兼容。
该类可以处理绝对和相对路径。
方法实现了流体API,以便实现方法链。
要添加或删除的文件夹可以以分隔符开头或结尾,这并不重要。唯一真正有关系的情况是在操作路径的根时。例如,要删除路径的根,路径必须以分隔符开头。
当您尝试删除不存在的文件夹时,将生成类型为 E_USER_NOTICE 的错误。
该组件也被用作我在文章 Including PHPUnit tests in SonarQube analysis 中描述的文件、文件夹和配置的示例。
示例
创建表示路径的对象
use kwebble\directoryfolderpath\DirectoryFolderPath;
$base = new DirectoryFolderPath('/source/php/project/src/main/php');
要获取操作后的新名称,请使用 getPath() 方法
$name = $base->getName();
要添加文件夹
$base->push('child');
// result: /source/php/project/src/main/php/child
$base->push('child/with/sub/folders');
// result: /source/php/project/src/main/php/child/with/sub/folders
要删除文件夹
$base->pop('php')
// result: /source/php/project/src/main
$base->pop('src/main/php')
// result: /source/php/project
可以使用特殊值 .. 来删除任何文件夹
$base->pop('..')
// result: /source/php/project/src/main
$base->pop('../..')
// result: /source/php/project/src
使用方法链
$base->pop('..')
->push('java');
// result: /source/php/project/src/java
要找到特定的父文件夹并将路径缩短到它
$base->parent('project');
// result: /source/php/project
要获取路径的各个部分作为数组,以执行自己的处理
$base->getParts();
// result: ['source', 'php', 'project']
这就是我创建这个类的原因,我想'计算'一个路径。
$dfp = new DirectoryFolderPath(__DIR__);
$path = $dfp->pop(__NAMESPACE__)
->pop(static::PHP_MAIN_PATH)
->push(static::DATA_FOLDER)
->push(static::IP_RANGES_FOLDER)
->getPath();
开发
代码作为Composer包分发,但您也可以直接使用DirectoryFolderPath类。没有其他依赖项。
测试
该软件包包含一组PHPUnit测试。要运行它们,请使用以下命令
composer run-script test
这将创建一个包含以XML格式描述测试结果的文件的build文件夹。我使用此输出运行SonarQube以分析源代码。该工具的配置存储在sonar-project.properties中。