Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Container/RewindableGenerator.php
Строк: 52
<?php

namespace IlluminateContainer;

use 
Countable;
use 
IteratorAggregate;
use 
Traversable;

class 
RewindableGenerator implements CountableIteratorAggregate
{
    
/**
     * The generator callback.
     *
     * @var callable
     */
    
protected $generator;

    
/**
     * The number of tagged services.
     *
     * @var callable|int
     */
    
protected $count;

    
/**
     * Create a new generator instance.
     *
     * @param  callable  $generator
     * @param  callable|int  $count
     * @return void
     */
    
public function __construct(callable $generator$count)
    {
        
$this->count $count;
        
$this->generator $generator;
    }

    
/**
     * Get an iterator from the generator.
     *
     * @return Traversable
     */
    
public function getIterator(): Traversable
    
{
        return (
$this->generator)();
    }

    
/**
     * Get the total number of tagged services.
     *
     * @return int
     */
    
public function count(): int
    
{
        if (
is_callable($count $this->count)) {
            
$this->count $count();
        }

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