コード例 #1
0
 private function validateInstallerClass($installerClass)
 {
     if (!class_exists($installerClass)) {
         throw NotInstallableException::installerClassNotFound($installerClass);
     }
     $reflClass = new ReflectionClass($installerClass);
     if ($reflClass->hasMethod('__construct') && $reflClass->getMethod('__construct')->getNumberOfRequiredParameters() > 0) {
         throw NotInstallableException::installerClassNoDefaultConstructor($installerClass);
     }
     if (!$reflClass->implementsInterface('Puli\\AssetPlugin\\Api\\Installer\\ResourceInstaller')) {
         throw NotInstallableException::installerClassInvalid($installerClass);
     }
 }
コード例 #2
0
 private function validateParameterValues(array $parameterValues, InstallerDescriptor $installerDescriptor)
 {
     $validator = new InstallerParameterValidator();
     $violations = $validator->validate($parameterValues, $installerDescriptor);
     foreach ($violations as $violation) {
         switch ($violation->getCode()) {
             case ConstraintViolation::MISSING_PARAMETER:
                 throw NotInstallableException::missingParameter($violation->getParameterName(), $violation->getInstallerName());
             case ConstraintViolation::NO_SUCH_PARAMETER:
                 throw NotInstallableException::noSuchParameter($violation->getParameterName(), $violation->getInstallerName());
         }
     }
 }