GracefulDeath\Builder::avoidFutileMedicalCare PHP Method

avoidFutileMedicalCare() public method

public avoidFutileMedicalCare ( $numberOfFailures = 6, $inAmountOfTime = 60 )
    public function avoidFutileMedicalCare($numberOfFailures = 6, $inAmountOfTime = 60)
    {
        $this->checkIfTerminallyIll = function ($reanimationPolicy) use($numberOfFailures, $inAmountOfTime) {
            $failuresInTime = [];
            return function () use(&$failuresInTime, $reanimationPolicy, $numberOfFailures, $inAmountOfTime) {
                $failuresInTime[] = time();
                if (count($failuresInTime) > $numberOfFailures) {
                    $failuresInTime = array_slice($failuresInTime, 1);
                }
                if (count($failuresInTime) === $numberOfFailures) {
                    if ($failuresInTime[count($failuresInTime) - 1] - $failuresInTime[0] < $inAmountOfTime) {
                        return false;
                    }
                }
                return call_user_func_array($reanimationPolicy, func_get_args());
            };
        };
        return $this;
    }