null, 'array' => false, 'optional' => false, 'hasDefaultValue' => false, 'defaultValue' => null, 'ignoreValidation' => false, 'validators' => [], ]; foreach ($defaults as $key => $defaultValue) { if (!isset($definition[$key])) { $definition[$key] = $defaultValue; } } $this->definition = $definition; } public function getName(): string { return $this->name; } public function getType(): ?string { return $this->definition['type']; } public function isArray(): bool { return $this->definition['array']; } public function hasDefaultValue(): bool { return $this->definition['hasDefaultValue']; } /** * @return mixed */ public function getDefaultValue() { return $this->definition['defaultValue']; } public function getValidators(): array { return $this->definition['validators']; } public function ignoreValidation(): bool { return $this->definition['ignoreValidation']; } public function isOptional(): bool { return $this->definition['optional']; } }