/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Component/DependencyInjection/Argument/RewindableGenerator.php
43 строки
934 B
Nicolas Grekas
Bump minimum version of PHP to 8.1
25 фев 2022, 14:15
25 фев 2022, 14:15
b0217c6
Код
Авторство
О чём код?
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\DependencyInjection\Argument; /** * @internal */ class RewindableGenerator implements \IteratorAggregate, \Countable { private \Closure $generator; private \Closure|int $count; public function __construct(callable $generator, int|callable $count) { $this->generator = $generator(...); $this->count = \is_int($count) ? $count : $count(...); } public function getIterator(): \Traversable { $g = $this->generator; return $g(); } public function count(): int { if (!\is_int($count = $this->count)) { $this->count = $count(); } return $this->count; } }