/** * @param $className * @param $source * @param $type * @return mixed */ private function validateCommand($className, $source, $type) { if (!class_exists($className)) { return false; } $reflectionClass = new \ReflectionClass($className); if ($reflectionClass->isAbstract()) { return false; } if (!$reflectionClass->isSubclassOf('Drupal\\Console\\Command\\Command')) { /* TODO remove once Compiler pass is completed */ if ($type === 'module' && $reflectionClass->isSubclassOf('Symfony\\Component\\Console\\Command\\Command')) { $command = $reflectionClass->newInstance(); if (!$this->getDrupalHelper()->isInstalled()) { $traits = class_uses($command); if (in_array('Drupal\\Console\\Command\\Shared\\ContainerAwareCommandTrait', $traits)) { return false; } } if (method_exists($command, 'setTranslator')) { $command->setTranslator($this->getTranslator()); } return $command; } /* TODO remove once Compiler pass is completed */ return false; } if (!$this->getDrupalHelper()->isInstalled() && $reflectionClass->isSubclassOf('Drupal\\Console\\Command\\ContainerAwareCommand')) { return false; } $dependencies = $this->commandDependencies->read($reflectionClass); if ($reflectionClass->getConstructor()->getNumberOfRequiredParameters() > 0) { if ($source != 'Console') { if ($type === 'module') { $this->getTranslator()->addResourceTranslationsByModule($source); } elseif ($type === 'theme') { $this->getTranslator()->addResourceTranslationsByTheme($source); } } $command = $reflectionClass->newInstance($this->getHelperSet()); } else { $command = $reflectionClass->newInstance(); } $this->missingDependencies[$command->getName()] = $dependencies; if ($type === 'module') { $command->setModule($source); } elseif ($type === 'theme') { $command->setTheme($source); } return $command; }
/** * @param $className * @param $source * @param $type * @return mixed */ private function validateCommand($className, $source, $type) { if (!class_exists($className)) { return false; } $reflectionClass = new \ReflectionClass($className); if ($reflectionClass->isAbstract()) { return false; } if (!$reflectionClass->isSubclassOf('Drupal\\Console\\Command\\Command')) { return false; } if (!$this->getDrupalHelper()->isInstalled() && $reflectionClass->isSubclassOf('Drupal\\Console\\Command\\ContainerAwareCommand')) { return false; } $dependencies = $this->commandDependencies->read($reflectionClass); if ($reflectionClass->getConstructor()->getNumberOfRequiredParameters() > 0) { if ($source != 'Console') { if ($type === 'module') { $this->getTranslator()->addResourceTranslationsByModule($source); } elseif ($type === 'theme') { $this->getTranslator()->addResourceTranslationsByTheme($source); } } $command = $reflectionClass->newInstance($this->getHelperSet()); } else { $command = $reflectionClass->newInstance(); } $this->missingDependencies[$command->getName()] = $dependencies; if ($type === 'module') { $command->setModule($source); } elseif ($type === 'theme') { $command->setTheme($source); } return $command; }