fabiang / exception-generator
标准异常生成工具
Requires
- php: ^8.0
- laminas/laminas-escaper: ^2.12
- laminas/laminas-filter: ^2.31
- laminas/laminas-servicemanager: ^3.0 || ^2.2
- laminas/laminas-view: ^2.27
- symfony/console: ^6.0 || ^7.0
- symfony/event-dispatcher: ^6.0 || ^7.0
Requires (Dev)
- behat/behat: ^3.12
- laminas/laminas-coding-standard: ^2.5
- mikey179/vfsstream: ^1.6.11
- phpspec/prophecy: ^1.17
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.6.3 || ^10.0
- vimeo/psalm: ^5.6
This package is auto-updated.
Last update: 2024-08-24 12:19:46 UTC
README
在软件项目和库中,生成异常类非常常见且必要。为了生成这些类,在PHP环境中强制执行的以下最佳实践
手动创建这些类既费时又容易出错。为了节省时间和减少错误,制作了这个工具!
安装/使用
composer global require fabiang/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文件,它将从当前目录开始迭代,向上遍历所有文件夹,直到找到PHP文件并解析出一个命名空间。之后,迭代的路径将添加到解析出的命名空间中。
如果应用程序在迭代过程中遇到composer.json,它将尝试使用“autoload”条目(psr-4和psr-0)来确定命名空间,其中psr-4的优先级高于psr-0。
如果应用程序在迭代过程中遇到.git文件夹,并且在此目录中既没有找到PHP文件,也没有找到composer.json,因此无法确定命名空间,迭代将终止,并且您必须手动输入命名空间。
如果您不使用“p”参数,应用程序还将检查父异常,如果找到,则用作继承的基础异常。
确定后的命名空间将显示在最后,并请您使用“回车”键验证或更正。
配置文件 (.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