Initial commit: CloudOps infrastructure platform
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
<?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)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Mautic\FormBundle\Collection;
|
||||
|
||||
/**
|
||||
* @extends \ArrayIterator<string,FieldCollection>
|
||||
*/
|
||||
final class MappedObjectCollection extends \ArrayIterator
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Mautic\FormBundle\Collection;
|
||||
|
||||
use Mautic\FormBundle\Crate\ObjectCrate;
|
||||
|
||||
/**
|
||||
* @extends \ArrayIterator<int,ObjectCrate>
|
||||
*/
|
||||
final class ObjectCollection extends \ArrayIterator
|
||||
{
|
||||
/**
|
||||
* @return array<string,string>
|
||||
*/
|
||||
public function toChoices(): array
|
||||
{
|
||||
$choices = [];
|
||||
|
||||
/** @var ObjectCrate $object */
|
||||
foreach ($this as $object) {
|
||||
$choices[$object->getName()] = $object->getKey();
|
||||
}
|
||||
|
||||
return $choices;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user