Remove Composer Lock. Tweak Commands and Tasks instantiation

This commit is contained in:
Andrés Montañez 2017-01-06 12:56:49 -03:00
parent 3908c20d8e
commit 5d95b4d6cb
3 changed files with 24 additions and 14 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
/vendor/ /vendor/
/build /build
composer.lock

View file

@ -21,6 +21,7 @@ use Symfony\Component\Console\Event\ConsoleExceptionEvent;
use Symfony\Component\Console\ConsoleEvents; use Symfony\Component\Console\ConsoleEvents;
use Symfony\Component\Console\Application; use Symfony\Component\Console\Application;
use Symfony\Component\Yaml\Yaml; use Symfony\Component\Yaml\Yaml;
use ReflectionClass;
use Mage\Runtime\Exception\RuntimeException; use Mage\Runtime\Exception\RuntimeException;
/** /**
@ -96,11 +97,13 @@ class MageApplication extends Application
foreach ($finder as $file) { foreach ($finder as $file) {
$class = substr('\\Mage\\Command\\BuiltIn\\' . str_replace('/', '\\', $file->getRelativePathname()), 0, -4); $class = substr('\\Mage\\Command\\BuiltIn\\' . str_replace('/', '\\', $file->getRelativePathname()), 0, -4);
if (class_exists($class)) { if (class_exists($class)) {
$command = new $class(); $reflex = new ReflectionClass($class);
if ($reflex->isInstantiable()) {
if ($command instanceof AbstractCommand) { $command = new $class();
$command->setRuntime($this->runtime); if ($command instanceof AbstractCommand) {
$this->add($command); $command->setRuntime($this->runtime);
$this->add($command);
}
} }
} }
} }

View file

@ -14,6 +14,7 @@ use Mage\Runtime\Runtime;
use Mage\Runtime\Exception\RuntimeException; use Mage\Runtime\Exception\RuntimeException;
use Symfony\Component\Finder\Finder; use Symfony\Component\Finder\Finder;
use Symfony\Component\Finder\SplFileInfo; use Symfony\Component\Finder\SplFileInfo;
use ReflectionClass;
/** /**
* Task Factory * Task Factory
@ -78,11 +79,14 @@ class TaskFactory
$task->setOptions($options); $task->setOptions($options);
return $task; return $task;
} elseif (class_exists($name)) { } elseif (class_exists($name)) {
$task = new $name(); $reflex = new ReflectionClass($name);
if ($task instanceof AbstractTask) { if ($reflex->isInstantiable()) {
$task->setOptions($options); $task = new $name();
$this->add($task); if ($task instanceof AbstractTask) {
return $task; $task->setOptions($options);
$this->add($task);
return $task;
}
} }
} }
@ -101,10 +105,12 @@ class TaskFactory
foreach ($finder as $file) { foreach ($finder as $file) {
$class = substr('\\Mage\\Task\\BuiltIn\\' . str_replace('/', '\\', $file->getRelativePathname()), 0, -4); $class = substr('\\Mage\\Task\\BuiltIn\\' . str_replace('/', '\\', $file->getRelativePathname()), 0, -4);
if (class_exists($class)) { if (class_exists($class)) {
$task = new $class(); $reflex = new ReflectionClass($class);
if ($reflex->isInstantiable()) {
if ($task instanceof AbstractTask) { $task = new $class();
$this->add($task); if ($task instanceof AbstractTask) {
$this->add($task);
}
} }
} }
} }