Get the installer.

@return Installer
510536
private function getInstaller()
    {
        return null !== $this->installer ? $this->installer : Installer::create($this->io, $this->composer);
    }
1240172
public function get()
    {
        if (! $this->singleton) {
            return call_user_func($this->loader);
        }
        if ($this->object === null) {
            $this->object = call_user_func($this->loader);
        }

        return $this->object;
    }
606875
public function getLogger()
    {
        if (is_null($this->logger)) {
            if ($this->getContainer()->has('logger')) {
                return $this->getContainer()->get('logger');
            } else if ($this->getContainer()->has('Psr\Log\LoggerInterface')) {
                return $this->getContainer()->get('Psr\Log\LoggerInterface');
            } else if (class_exists('Monolog\Logger')) {
                $this->getContainer()->addServiceProvider(new \Laasti\Log\MonologProvider);
                return $this->getContainer()->get('logger');

            }
        }

        return $this->logger;
    }
985690
public function getInstallationManager()
    {
        if (!$this->started) {
            throw new LogicException('Puli was not started');
        }

        if (!$this->installationManager && $this->context instanceof ProjectContext) {
            $this->installationManager = new InstallationManagerImpl(
                $this->getContext(),
                $this->getRepository(),
                $this->getServerManager()->getServers(),
                $this->getInstallerManager()
            );
        }

        return $this->installationManager;
    }
1082731
public function get()
    {
        $schemeCollection = (new SchemeCollectionProvider($this->appName, $this->injector))->get();
        foreach ($this->importAppConfig as $importApp) {
            /* @var \BEAR\Resource\ImportApp */
            $injector = class_exists(AppInjector::class) ? new AppInjector($importApp->appName, $importApp->context) : $this->injector;
            $adapter = new AppAdapter($injector, $importApp->appName);
            $schemeCollection
                ->scheme('page')->host($importApp->host)->toAdapter($adapter)
                ->scheme('app')->host($importApp->host)->toAdapter($adapter);
        }

        return $schemeCollection;
    }
1331103
public function getLoader()
	{
		if ($this->loader === null) {
			$this->loader = new Dwoo_Loader($this->getCompileDir());
		}

		return $this->loader;
	}
38625
public function getOptionParser()
    {
        $parser = parent::getOptionParser();
        $parser
            ->description(__d('installer', 'Theme maintenance commands.'))
            ->addSubcommand('install', [
                'help' => __d('installer', 'Install a new theme.'),
                'parser' => $this->PluginInstall->getOptionParser(),
            ])
            ->addSubcommand('uninstall', [
                'help' => __d('installer', 'Uninstalls an existing theme.'),
                'parser' => $this->PluginUninstall->getOptionParser(),
            ])
            ->addSubcommand('change', [
                'help' => __d('installer', 'Change theme in use.'),
                'parser' => $this->ThemeActivation->getOptionParser(),
            ]);

        return $parser;
    }
278497
private function getUploader()
    {
        if (is_null($this->uploader)) {
            $this->uploader = UploaderFactory::build($this->rootDir.$this->path, $this->plugins);
        }
        
        return $this->uploader;
    }
511509
private function getLoader()
    {
        if (null == $this->loader) {
            $this->loader = new Twig_Loader_Filesystem(
                $this->locations
            );
        }
        return $this->loader;
    }
143297
protected function getConfigurationManager()
    {
        if (!isset($this->configurationManager)) {
            $this->configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class);
        }

        return $this->configurationManager;
    }
572043
public function getConfigurator()
    {
        if (!$this->getContainer()->has(Configuration::class)) {
            $this->getContainer()->share(Configuration::class, (new Configuration([], true)));
        }

        return $this->getContainer()->get(Configuration::class);
    }
224036
public function install()
    {
        $this->ensureNotInstalledBefore();

        if ($this->locator) {
            $this->path = $this->locator->locate($this->slug);
        }

        $this->validate();

        $this->make();

        $this->register();

        $this->migrate();

        $this->installSubAddons();

        AddonInstalledEvent::dispatch($this->addon);

        return $this;
    }
1260261
public function getLoader()
    {
        if (!$this->loader) {
            $this->loader = new EdgeFileLoader($this->dumpPaths());
        }

        return $this->loader;
    }
54328
public function getInstallTargetManager()
    {
        if (!$this->installTargetManager) {
            $this->installTargetManager = new PackageFileInstallTargetManager(
                $this->getPuli()->getRootPackageFileManager(),
                $this->getInstallerManager()
            );
        }

        return $this->installTargetManager;
    }
44259
public function getConsumer()
    {

        if (is_null($this->consumer)) {
            if (!is_null($this->context) || !is_null($this->contextId)) {
                $this->consumer = $this->getContext()->getConsumer();
            } else {
                $this->consumer = ToolConsumer::fromRecordId($this->consumerId, $this->getDataConnector());
            }
        }

        return $this->consumer;

    }
142377
public function getInstallScript()
    {
        if (! $this->installScript) {
            $installClass = $this->installNamespace.'Install';

            if (! class_exists($installClass)) {
                $message = sprintf('No install class found at %s. Nothing to do.', $installClass);

                throw new RuntimeException($message);
            }

            $installScript = new $installClass;

            $this->installScript = $installScript;
        }

        return $this->installScript;
    }
1134218
protected ClassLoader getClassLoader() {
        ClassLoader loader = null;
        Package pkg = PackageCache.getProcessPackage(getProcessId());
        if (pkg != null) {
            loader = pkg.getCloudClassLoader();
        }
        if (loader == null) {
            loader = getClass().getClassLoader();
        }
        return loader;
    }