interitty/无限循环预防

一个简单的无限循环预防工具。

v1.0.6 2024-09-01 11:46 UTC

This package is auto-updated.

Last update: 2024-09-01 09:49:03 UTC


README

这是一个简单的无限循环预防工具,帮助开发者防止遇到错误 达到函数嵌套最大层数 '256',正在终止!

需求

安装

安装 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();