Spaces:
No application file
No application file
File size: 978 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php
namespace Mautic\CoreBundle\Event;
use Mautic\CoreBundle\Exception\BadConfigurationException;
trait ComponentValidationTrait
{
private function verifyComponent(array $keys, array $component, array $callbacks = []): void
{
foreach ($keys as $k) {
if (is_array($k)) {
// Check that at least one option exists
if (empty(array_intersect($k, array_keys($component)))) {
throw new BadConfigurationException("At least one of the following keys are required: '".implode(', ', $k));
}
} elseif (!array_key_exists($k, $component)) {
throw new BadConfigurationException("The key, '$k' is missing.");
}
}
foreach ($callbacks as $m) {
if (isset($component[$m]) && !is_callable($component[$m])) {
throw new BadConfigurationException($component[$m].' is not callable.');
}
}
}
}
|