/**
* Generate Bundle Collection
*
* @param $input
*/
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;
}