Вход Регистрация
Файл: vendor/laravel/prompts/src/FormStep.php
Строк: 70
<?php

namespace LaravelPrompts;

use 
Closure;

class 
FormStep
{
    protected 
readonly Closure $condition;

    public function 
__construct(
        protected 
readonly Closure $step,
        
bool|Closure $condition,
        public 
readonly ?string $name,
        protected 
readonly bool $ignoreWhenReverting,
    ) {
        
$this->condition is_bool($condition)
            ? 
fn () => $condition
            
$condition;
    }

    
/**
     * Execute this step.
     *
     * @param  array<mixed>  $responses
     */
    
public function run(array $responsesmixed $previousResponse): mixed
    
{
        if (! 
$this->shouldRun($responses)) {
            return 
null;
        }

        return (
$this->step)($responses$previousResponse);
    }

    
/**
     * Whether the step should run based on the given condition.
     *
     * @param  array<mixed>  $responses
     */
    
protected function shouldRun(array $responses): bool
    
{
        return (
$this->condition)($responses);
    }

    
/**
     * Whether this step should be skipped over when a subsequent step is reverted.
     *
     * @param  array<mixed>  $responses
     */
    
public function shouldIgnoreWhenReverting(array $responses): bool
    
{
        if (! 
$this->shouldRun($responses)) {
            return 
true;
        }

        return 
$this->ignoreWhenReverting;
    }
}
Онлайн: 2
Реклама