Deployment\CliRunner::createDeployer PHP Метод

createDeployer() приватный Метод

private createDeployer ( $config ) : Deployer
Результат Deployer
    private function createDeployer($config)
    {
        if (empty($config['remote']) || !($urlParts = parse_url($config['remote'])) || !isset($urlParts['scheme'], $urlParts['host'])) {
            throw new \Exception("Missing or invalid 'remote' URL in config.");
        }
        if (isset($config['user'])) {
            $urlParts['user'] = urlencode($config['user']);
        }
        if (isset($config['password'])) {
            $urlParts['pass'] = urlencode($config['password']);
        }
        $server = $urlParts['scheme'] === 'sftp' ? new SshServer($urlParts) : new FtpServer($urlParts, (bool) $config['passivemode']);
        if (!preg_match('#/|\\\\|[a-z]:#iA', $config['local'])) {
            if ($config['local'] && getcwd() !== dirname($this->configFile)) {
                $this->logger->log('WARNING: the "local" path is now relative to the directory where ' . basename($this->configFile) . ' is placed', 'red');
            }
            $config['local'] = dirname($this->configFile) . '/' . $config['local'];
        }
        $deployment = new Deployer($server, $config['local'], $this->logger);
        if ($config['preprocess']) {
            $deployment->preprocessMasks = $config['preprocess'] == 1 ? ['*.js', '*.css'] : self::toArray($config['preprocess']);
            // intentionally ==
            $preprocessor = new Preprocessor($this->logger);
            $deployment->addFilter('js', [$preprocessor, 'expandApacheImports']);
            $deployment->addFilter('js', [$preprocessor, 'compressJs'], TRUE);
            $deployment->addFilter('css', [$preprocessor, 'expandApacheImports']);
            $deployment->addFilter('css', [$preprocessor, 'expandCssImports']);
            $deployment->addFilter('css', [$preprocessor, 'compressCss'], TRUE);
        }
        $deployment->ignoreMasks = array_merge($this->ignoreMasks, self::toArray($config['ignore']));
        $deployment->deploymentFile = empty($config['deploymentfile']) ? $deployment->deploymentFile : $config['deploymentfile'];
        $deployment->allowDelete = $config['allowdelete'];
        $deployment->toPurge = self::toArray($config['purge'], TRUE);
        $deployment->runBefore = self::toArray($config['before'], TRUE);
        $deployment->runAfterUpload = self::toArray($config['afterupload'], TRUE);
        $deployment->runAfter = self::toArray($config['after'], TRUE);
        $deployment->testMode = !empty($config['test']) || $this->mode === 'test';
        return $deployment;
    }