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)));
$nsCollection->add(new Nspace($ns->metadata->name, $this->extractPath($ns->metadata->path)));
if ($config_user = $config->namespaces->user) {
$nsCollection = $this->addCustomNamespacesToCollection($nsCollection, $config_user);
}
return $nsCollection;
}