<?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\Console\Helper; use Symfony\Component\Console\Exception\InvalidArgumentException; /** * HelperSet represents a set of helpers to be used with a command. * * @author Fabien Potencier <fabien@symfony.com> * * @implements \IteratorAggregate<string, HelperInterface> */ class HelperSet implements \IteratorAggregate { /** @var array<string, HelperInterface> */ private array $helpers = []; /** * @param HelperInterface[] $helpers */ public function __construct(array $helpers = []) { foreach ($helpers as $alias => $helper) { $this->set($helper, \is_int($alias) ? null : $alias); } } public function set(HelperInterface $helper, string $alias = null) { $this->helpers[$helper->getName()] = $helper; if (null !== $alias) { $this->helpers[$alias] = $helper; } $helper->setHelperSet($this); } /** * Returns true if the helper if defined. */ public function has(string $name): bool { return isset($this->helpers[$name]); } /** * Gets a helper value. * * @throws InvalidArgumentException if the helper is not defined */ public function get(string $name): HelperInterface { if (!$this->has($name)) { throw new InvalidArgumentException(sprintf('The helper "%s" is not defined.', $name)); } return $this->helpers[$name]; } public function getIterator(): \Traversable { return new \ArrayIterator($this->helpers); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
DebugFormatterHelper.php | File | 3.34 KB | 0644 |
|
DescriptorHelper.php | File | 2.51 KB | 0644 |
|
Dumper.php | File | 1.91 KB | 0644 |
|
FormatterHelper.php | File | 2.26 KB | 0644 |
|
Helper.php | File | 4.46 KB | 0644 |
|
HelperInterface.php | File | 851 B | 0644 |
|
HelperSet.php | File | 1.86 KB | 0644 |
|
InputAwareHelper.php | File | 740 B | 0644 |
|
OutputWrapper.php | File | 3.01 KB | 0644 |
|
ProcessHelper.php | File | 4.77 KB | 0644 |
|
ProgressBar.php | File | 19.14 KB | 0644 |
|
ProgressIndicator.php | File | 7.08 KB | 0644 |
|
QuestionHelper.php | File | 19.71 KB | 0644 |
|
SymfonyQuestionHelper.php | File | 3.23 KB | 0644 |
|
Table.php | File | 31.46 KB | 0644 |
|
TableCell.php | File | 1.79 KB | 0644 |
|
TableCellStyle.php | File | 2.29 KB | 0644 |
|
TableRows.php | File | 620 B | 0644 |
|
TableSeparator.php | File | 556 B | 0644 |
|
TableStyle.php | File | 12.81 KB | 0644 |
|