/** * Executes the command * @param Config $config * @param Logger $logger */ public function execute(Config $config, Logger $logger) { $params = $this->parseArguments(); $backend = null; if (!isset($params['backend'])) { $params['backend'] = BaseBackend::getActiveBackend(); } $className = 'Zephir\\Backends\\' . $params['backend'] . '\\Backend'; if (!class_exists($className)) { throw new \InvalidArgumentException('Backend ' . $params['backend'] . ' does not exist'); } $backend = new $className(); $compiler = new Compiler($config, $logger, $backend); $command = $this->getCommand(); $compiler->{$command}($this); }