protected function CreateNew::validateArguments in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/system/src/Plugin/ImageToolkit/Operation/gd/CreateNew.php \Drupal\system\Plugin\ImageToolkit\Operation\gd\CreateNew::validateArguments()
Validates the arguments.
Image toolkit operation implementers should place any argument validation in this method, throwing an InvalidArgumentException when an error is encountered.
Validation typically includes things like:
- Checking that width and height are not negative.
- Checking that a color value is indeed a color.
But validation may also include correcting the arguments, e.g:
- Casting arguments to the correct type.
- Rounding pixel values to an integer.
This base implementation just returns the array of arguments and thus does not need to be called by overriding methods.
Parameters
array $arguments: An associative array of arguments to be used by the toolkit operation.
Return value
array The validated and corrected arguments array.
Throws
\InvalidArgumentException If one or more of the arguments are not valid.
\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException If the plugin does not define a default for an optional argument.
Overrides ImageToolkitOperationBase::validateArguments
File
- core/
modules/ system/ src/ Plugin/ ImageToolkit/ Operation/ gd/ CreateNew.php, line 57 - Contains \Drupal\system\Plugin\ImageToolkit\Operation\gd\CreateNew.
Class
- CreateNew
- Defines GD2 create_new image operation.
Namespace
Drupal\system\Plugin\ImageToolkit\Operation\gdCode
protected function validateArguments(array $arguments) {
// Assure extension is supported.
if (!in_array($arguments['extension'], $this
->getToolkit()
->getSupportedExtensions())) {
throw new \InvalidArgumentException("Invalid extension ('{$arguments['extension']}') specified for the image 'convert' operation");
}
// Assure integers for width and height.
$arguments['width'] = (int) round($arguments['width']);
$arguments['height'] = (int) round($arguments['height']);
// Fail when width or height are 0 or negative.
if ($arguments['width'] <= 0) {
throw new \InvalidArgumentException("Invalid width ('{$arguments['width']}') specified for the image 'create_new' operation");
}
if ($arguments['height'] <= 0) {
throw new \InvalidArgumentException("Invalid height ({$arguments['height']}) specified for the image 'create_new' operation");
}
// Assure transparent color is a valid hex string.
if ($arguments['transparent_color'] && !Color::validateHex($arguments['transparent_color'])) {
throw new \InvalidArgumentException("Invalid transparent color ({$arguments['transparent_color']}) specified for the image 'create_new' operation");
}
return $arguments;
}