/** * Constructor * * @param string $classname The name of a task class * @param array.<sndsgd\Field> $fields Fields to inject into the task */ public function __construct($classname, array $fields = []) { if (Task::validateClassname($classname) === false) { throw new InvalidArgumentException("invalid value provided for 'classname'; expecting the name of " . "a subclass of sndsgd\\Task as string"); } $this->task = new $classname($fields); }