esi / wildcard
一个简单的通配符匹配器。
Requires
- php: ^8.2 <8.5
Requires (Dev)
- friendsofphp/php-cs-fixer: >=3.45
- phpstan/phpstan: >=1.11
- phpstan/phpstan-phpunit: >=1.4
- phpstan/phpstan-strict-rules: >=1.6
- phpunit/phpunit: >=10.5
- rector/rector: dev-main
This package is auto-updated.
Last update: 2024-06-03 07:05:07 UTC
README
重要
此库现已归档,目前没有计划进行维护。
此项目旨在为php提供一个非常简单的组件以支持通配符。通配符是 *(零个或多个字符)和 ?(恰好一个字符)。该组件与文件名无关。您还可以将其用于命名空间、url和其他字符串。
为什么不能只提供一个简单的函数呢?
因为效率。当您创建 Wildcard
类的实例时,您也“编译”了模式。这意味着我试图为您后来的输入找到最优的测试方法。所以如果您在同一运行中多次运行相同的模式,您可能从中受益。如果不,界面仍然足够简单,足以让您满意。如果不,请围绕它封装一个函数。
为什么不直接使用正则表达式呢?
因为对于最常见的模式没有理由使用正则表达式
string*
表示 "以...开头"。 *string
表示 "以...结尾"。
所以即使我使用正则表达式来覆盖复杂的模式,对于这些模式中的任何一个使用正则表达式也是毫无意义的。如果您喜欢为这些简单的模式提供更多的速度提升,请随时推动一些。
Composer
composer require esi/wildcard ^1.0
示例
use Esi\Wildcard\Wildcard; (new Wildcard('test.*'))->match('test.txt'); // true Wildcard::create('test.*')->match('test.txt'); // true Wildcard::create('*.txt')->match('test.txt'); // true Wildcard::create('*.*')->match('test.txt'); // true Wildcard::create('test*txt')->match('test.txt'); // true Wildcard::create('test?txt')->match('test.txt'); // true Wildcard::create('t*.???')->match('test.txt'); // true Wildcard::create('t*t?.txt')->match('test8.txt'); // true
关于
要求
- PHP 8.2.0 或更高版本。
提交错误和功能请求
错误和功能请求在 GitHub 上跟踪
问题是最快报告错误的途径。如果您发现错误或文档错误,请首先检查以下内容
- 没有关于该错误的已开放问题
- 该问题尚未得到解决(例如,在已关闭的问题中)
贡献
Wildcard 接受来自社区的代码和文档贡献。这些贡献可以以问题或 Pull Requests 的形式提交到 Wildcard 仓库。
Wildcard 采用 MIT 许可证。当您向 Wildcard 提交新功能或补丁时,您是在给予许可,允许在这些功能或补丁下使用 MIT 许可证。
Wildcard 尽力遵循 PHPStan 级别 9 的严格规则和前沿技术。请确保任何贡献都这样做。
指南
在我们探讨如何做之前,这里有指南。如果您的 Pull Requests 无法通过这些指南,它将被拒绝,您需要在做出更改后重新提交。这听起来可能有点严格,但这是为了维护代码库的质量所必需的。
PHP 样式
请确保所有新的贡献符合 PSR-12 编码风格指南。该项目目前尚未完全符合 PSR-12,但为了确保最轻松地过渡到编码指南,我建议任何贡献都遵循这些指南。
文档
如果您更改了需要修改文档的内容,那么您需要添加相应的更改。新的方法、参数、更改默认值、添加常量等,所有这些都需要对文档进行修改。变更日志也必须在每次更改时更新。同时,PHPDoc 块也必须维护。
函数/变量文档(PHPDoc)
请确保所有新的贡献都遵循
在编写新函数或更改现有文档时。
分支管理
一次只做一件事:拉取请求应只包含一个更改。这并不意味着只有一个提交,而是一个更改——不管需要多少次提交。这样做的原因是,如果您同时更改 X 和 Y 并提交一个包含两者的拉取请求,我们可能真的需要 X 但不同意 Y,这意味着我们无法合并请求。使用 Git-Flow 分支模型,您可以创建这两个功能的分支并提交两个请求。
作者
Eric Sizemore - admin@secondversion.com - https://www.secondversion.com
许可证
Wildcard 采用 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE.md
文件
致谢 / 贡献者
此存储库是从 rkrx/php-wildcards 分支出来的。感谢他们以及所有贡献者!