Spaces:
No application file
No application file
| 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.'); | |
| } | |
| } | |
| } | |
| } | |