$options) { // Create the constraint. // Options are an associative array of constraint properties and values. $constraints[] = $this->constraintManager->create($validator, $options); } // Get the typed data. $fileTypedData = $file->getTypedData(); $violations = $this->validator->validate($fileTypedData, $constraints); $this->eventDispatcher->dispatch(new FileValidationEvent($file, $violations)); // Always check the insecure upload constraint. if (count($violations) === 0) { $insecureUploadConstraint = $this->constraintManager->create('FileExtensionSecure', []); $violations = $this->validator->validate($fileTypedData, $insecureUploadConstraint); } return $violations; } }