PluginDefinitionValidator.php in Plugin 8.2
File
src/PluginDefinition/PluginDefinitionValidator.php
View source
<?php
namespace Drupal\plugin\PluginDefinition;
use Drupal\Component\Plugin\Context\ContextDefinitionInterface;
use Drupal\Component\Plugin\Derivative\DeriverInterface;
class PluginDefinitionValidator {
public static function validateClass($class) {
if (!class_exists($class)) {
throw new \InvalidArgumentException(sprintf('Class %s does not exist.', $class));
}
}
public static function validateDeriverClass($class) {
static::validateClass($class);
if (!is_subclass_of($class, DeriverInterface::class)) {
throw new \InvalidArgumentException(sprintf('Plugin deriver class %s does not implement required %s.', $class, DeriverInterface::class));
}
}
public static function validateContextDefinitions(array $context_definitions) {
foreach ($context_definitions as $name => $context_definition) {
if (!$context_definition instanceof ContextDefinitionInterface) {
$type = is_object($context_definition) ? get_class($context_definition) : gettype($context_definition);
throw new \InvalidArgumentException(sprintf('$context_definition[%s] (%s) does not implement required %s.', $name, $type, ContextDefinitionInterface::class));
}
}
}
}