interitty / 无限循环预防
一个简单的无限循环预防工具。
v1.0.6
2024-09-01 11:46 UTC
Requires
- php: ~8.3
- dg/composer-cleaner: ~2.2
Requires (Dev)
- interitty/code-checker: ~1.0
- interitty/phpunit: ~1.0
README
这是一个简单的无限循环预防工具,帮助开发者防止遇到错误 达到函数嵌套最大层数 '256',正在终止!
。
需求
- PHP >= 8.3
安装
安装 interitty/infinite-loop-prevention 的最佳方式是使用 Composer
composer require interitty/infinite-loop-prevention
用法
对于可能会发生无限循环的情况,尤其是当代码与给定的回调函数一起工作时,在非生产环境中调用预防性断言是个好主意,以确保代码不会陷入无限循环。
由于代码基于 debug_backtrace
,建议在通过设置静态变量 InfiniteLoopPrevention::$productionMode
在生产环境中禁用此机制。
为了在生产环境中获得更好的性能,建议使用 assert
,因为可以通过 php.ini
文件中的 zend.assertions
禁用执行和整个代码生成。
只需在调用给定回调函数的方法或函数内部调用静态方法,无需任何参数。
示例:checkFinite() 的用法
function test(): void
{
assert(InfiniteLoopPrevention::checkFinite());
test();
}
test();