burntromi / exception-generator
创建标准异常的工具
Requires
- php: ^5.6 || ^7.0
- symfony/console: ^2.5
- symfony/event-dispatcher: ^2.5 || ^3.0
- zendframework/zend-escaper: ^2.2
- zendframework/zend-filter: ^2.2
- zendframework/zend-servicemanager: ^3.0 || ^2.2
- zendframework/zend-view: ^2.2
Requires (Dev)
- behat/behat: ^3.2.2
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^5.6.5
This package is not auto-updated.
Last update: 2024-09-28 19:42:06 UTC
README
在软件项目和库中,生成异常类非常常见且必需。为了生成这些类,以下PHP环境中强制执行的最好实践
http://ralphschindler.com/2010/09/15/exception-best-practices-in-php-5-3
手动创建这些类既费时又容易出错。为了节省时间和减少错误,制作了这个工具!
安装/使用
composer global require burntromi/exception-generator
请确保你的路径中包含 ~/.composer/vendor/bin/。
exception-generator [PATH]
其中 PATH 是异常类应生成的源代码路径。
可能选项
--overwrite (-o):
允许覆盖所有现有文件,而无需逐个询问每个文件是否要覆盖。
--template-path=PATH (-t PATH):
可以用来自定应用查找用于创建异常类/接口模板的路径。如果在此路径中找不到模板,应用将寻找其他方式来查找要使用的模板。首先,它会检查位于 $HOME 的配置文件 (.exception-generator.json)。如果这也失败,它将使用工具本身提供的模板。
--no-parents (-p):
禁用搜索和使用父异常类的功能。
--help (-h):
显示帮助文本并退出。
命名空间是如何确定的?
工具从当前目录开始。如果可以找到PHP文件,它将尝试从这个文件中解析出一个命名空间。否则,它将从当前目录开始迭代,通过所有文件夹直到找到一个PHP文件并且可以解析出命名空间。之后,迭代的路径将被添加到解析出的命名空间中。
如果在迭代过程中找到了composer.json,应用将尝试使用“autoload”条目(psr-4和psr-0)来确定命名空间,其中psr-4比psr-0有更高的优先级。
如果在迭代过程中遇到了.git文件夹,且在这个目录中既没有找到PHP文件,也没有找到composer.json,因此无法确定命名空间,迭代将中止,并且你必须手动输入命名空间。
如果你没有使用“p”参数,应用也将检查父异常,如果找到,则用作继承的基础异常。
确定后的命名空间将在最后显示,并且你会被要求使用“enter”进行验证或进行纠正。
配置文件 (.exception-generator.json)
它应该位于 $HOME 并使用以下模式
{
"templatepath": {
"global": "/home/user/exception-generator/global",
"projects": {
"/data/projects/myproject": "/home/user/exception-generator/myproject/"
}
}
}
首先,它会尝试从“projects”中匹配路径与当前你所在的目录,并使用最可能的包含模板的路径,如果有多个匹配项。如果失败,它将检查“global”中的条目以查找模板。否则,工具将使用本身提供的模板。
测试
运行PHPUnit
./vendor/bin/phpunit
运行Behat
./vendor/bin/behat
许可证
MIT 查看 LICENSE.md