/**
* Generate Namespace collection
*
* @param $input
*/
private function generateNamespacesCollection($input, $config)
{
$ns = $config->namespaces->installer;
$nsCollection = new NspaceCollection();
$nsCollection->add(new Nspace(
$ns->symfony->name,
$this->extractPath($ns->symfony->path)
));
$nsCollection->add(new Nspace(
$input->getArgument('vendor'),
'src'
));
if (('doctrine' === $input->getOption('orm')) || ('mongodb' === $input->getOption('odm'))) {
$nsCollection->add(new Nspace(
$ns->doctrinecommon->name,
$this->extractPath($ns->doctrinecommon->path)
));
}
if ('doctrine' === $input->getOption('orm')) {
if ($input->getOption('doctrine-fixtures')) {
$nsCollection->add(new Nspace(
$ns->doctrinedatafixtures->name,
$this->extractPath($ns->doctrinedatafixtures->path)
));
}
if ($input->getOption('doctrine-migration')) {
$nsCollection->add(new Nspace(
$ns->doctrinemigrations->name,
$this->extractPath($ns->doctrinemigrations->path)
));
}
}
if ('mongodb' === $input->getOption('odm')) {
$nsCollection->add(new Nspace(
$ns->doctrinemongodb->name,
$this->extractPath($ns->doctrinemongodb->path)
));
$nsCollection->add(new Nspace(
$ns->doctrinemongodbodm->name,
$this->extractPath($ns->doctrinemongodbodm->path)
));
}
if ('mandango' === $input->getOption('odm')) {
$nsCollection->add(new Nspace(
$ns->mandangobundle->name,
$this->extractPath($ns->mandangobundle->path)
));
$nsCollection->add(new Nspace(
$ns->mondator->name,
$this->extractPath($ns->mondator->path)
));
$nsCollection->add(new Nspace(
$ns->mandango->name,
$this->extractPath($ns->mandango->path)
));
$nsCollection->add(new Nspace(
$ns->mandangomodel->name,
$this->extractPath($ns->mandangomodel->path)
));
}
if ('doctrine' === $input->getOption('orm')) {
$nsCollection->add(new Nspace(
$ns->doctrinedbal->name,
$this->extractPath($ns->doctrinedbal->path)
));
$nsCollection->add(new Nspace(
$ns->doctrine->name,
$this->extractPath($ns->doctrine->path)
));
}
if ('propel' === $input->getOption('orm')) {
$nsCollection->add(new Nspace(
$ns->propel->name,
$this->extractPath($ns->propel->path)
));
}
if ($input->getOption('assetic')) {
$nsCollection->add(new Nspace(
$ns->assetic->name,
$this->extractPath($ns->assetic->path)
));
}
$nsCollection->add(new Nspace(
$ns->monolog->name,
$this->extractPath($ns->monolog->path)
));
if ($config_user = $config->namespaces->user) {
$nsCollection = $this->addCustomNamespacesToCollection($nsCollection, $config_user);
}
return $nsCollection;
}