![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/FormBundle/Collection/ |
<?php declare(strict_types=1); namespace Mautic\FormBundle\Collection; use Mautic\FormBundle\Crate\FieldCrate; use Mautic\FormBundle\Exception\FieldNotFoundException; /** * @extends \ArrayIterator<int,FieldCrate> */ final class FieldCollection extends \ArrayIterator { /** * @return array<string,string> */ public function toChoices(): array { $choices = []; /** @var FieldCrate $field */ foreach ($this as $field) { $choices[$field->getName()] = $field->getKey(); } return $choices; } /** * @return FieldCrate|null */ public function getFieldByKey(string $key, bool $throwExceptionIfNotFound = true) { /** @var FieldCrate $field */ foreach ($this as $field) { if ($key === $field->getKey()) { return $field; } } if ($throwExceptionIfNotFound) { throw new FieldNotFoundException("Field with key {$key} was not found."); } return null; } /** * @param string[] $keys */ public function removeFieldsWithKeys(array $keys, string $keyToKeep = null): FieldCollection { return new self( array_filter( $this->getArrayCopy(), fn (FieldCrate $field): bool => ($keyToKeep && $field->getKey() === $keyToKeep) || !in_array($field->getKey(), $keys, true) ) ); } }