private function generateBundlesCollection($input, $config)
{
$bundles = $config->bundles->installer;
$bundlesCollection = new BundleCollection();
$bundlesCollection->add(new Bundle($bundles->framework->name, $bundles->framework->namespace));
$bundlesCollection->add(new Bundle($bundles->monolog->name, $bundles->monolog->namespace));
if ('twig' === $input->getOption('template-engine')) {
$bundlesCollection->add(new Bundle($bundles->twig->name, $bundles->twig->namespace));
}
if ($input->getOption('swiftmailer')) {
$bundlesCollection->add(new Bundle($bundles->swiftmailer->name, $bundles->swiftmailer->namespace));
}
if ($input->getOption('assetic')) {
$bundlesCollection->add(new Bundle($bundles->assetic->name, $bundles->assetic->namespace));
}
if ($input->getOption('orm')) {
if ('doctrine' === $input->getOption('orm')) {
$bundlesCollection->add(new Bundle($bundles->doctrine->name, $bundles->doctrine->namespace));
if ($input->getOption('doctrine-migration')) {
$bundlesCollection->add(new Bundle($bundles->doctrinemigrations->name, $bundles->doctrinemigrations->namespace));
}
if ($input->getOption('doctrine-fixtures')) {
$bundlesCollection->add(new Bundle($bundles->doctrinefixtures->name, $bundles->doctrinefixtures->namespace));
}
}
if ('propel' === $input->getOption('orm')) {
$bundlesCollection->add(new Bundle($bundles->propel->name, $bundles->propel->namespace));
}
}
if ('mongodb' === $input->getOption('odm')) {
$bundlesCollection->add(new Bundle($bundles->doctrinemongodb->name, $bundles->doctrinemongodb->namespace));
}
if ('mandango' === $input->getOption('odm')) {
$bundlesCollection->add(new Bundle($bundles->mandangobundle->name, $bundles->mandangobundle->namespace));
}
if ($config_user = $config->bundles->user) {
$bundlesCollection = $this->addCustomBundlesToCollection($bundlesCollection, $config_user);
}
$app = $input->getArgument('app');
$vendor = $input->getArgument('vendor');
$bundlesCollection->add(new Bundle($vendor . $app, sprintf('%s\\%sBundle', $vendor, $app)));
return $bundlesCollection;
}