<?php
/*
* This file is part of the PEC Platform Bundle.
*
* (c) PEC project engineers & consultants
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Pec\Bundle\PlatformBundle;
use Pec\Bundle\PlatformBundle\DependencyInjection\Compiler\DisableVoteListenerPass;
use Pec\Bundle\PlatformBundle\DependencyInjection\Compiler\ExceptionListenerPass;
use Pec\Bundle\PlatformBundle\Security\GroupCompilerPass;
use Pec\Bundle\PlatformBundle\Security\LoginService;
use Pec\Bundle\PlatformBundle\Security\RoleService;
use Pec\Bundle\PlatformBundle\Security\RoleServiceCompilerPass;
use Pec\Bundle\PlatformBundle\Security\UserCompilerPass;
use Pec\Bundle\PlatformBundle\Services\ThemeCompilerPass;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
*/
class PecPlatformBundle extends Bundle {
public static function getRequiredBundles(string $env, array &$requiredBundles = []): array {
if(isset($requiredBundles['PecPlatformBundle'])) {
return $requiredBundles;
}
// Default Symfony packages
$requiredBundles['FrameworkBundle'] = '\Symfony\Bundle\FrameworkBundle\FrameworkBundle';
$requiredBundles['SecurityBundle'] = '\Symfony\Bundle\SecurityBundle\SecurityBundle';
$requiredBundles['TwigBundle'] = '\Symfony\Bundle\TwigBundle\TwigBundle';
$requiredBundles['MonologBundle'] = '\Symfony\Bundle\MonologBundle\MonologBundle';
$requiredBundles['SwiftmailerBundle'] = '\Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle';
$requiredBundles['DoctrineBundle'] = '\Doctrine\Bundle\DoctrineBundle\DoctrineBundle';
$requiredBundles['SensioFrameworkExtraBundle'] = '\Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle';
$requiredBundles['TwigExtraBundle'] = '\Twig\Extra\TwigExtraBundle\TwigExtraBundle';
// Use management
// $requiredBundles['FOSUserBundle'] = '\FOS\UserBundle\FOSUserBundle';
// Default UI components
$requiredBundles['KnpPaginatorBundle'] = '\Knp\Bundle\PaginatorBundle\KnpPaginatorBundle';
// Translation inside JS
$requiredBundles['BazingaJsTranslationBundle'] = '\Bazinga\Bundle\JsTranslationBundle\BazingaJsTranslationBundle';
// LocaleRouting
$requiredBundles['JMSI18nRoutingBundle'] = '\JMS\I18nRoutingBundle\JMSI18nRoutingBundle';
// JS Routing
$requiredBundles['FOSJsRoutingBundle'] = '\FOS\JsRoutingBundle\FOSJsRoutingBundle';
$requiredBundles['StofDoctrineExtensionsBundle'] = '\Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle';
$requiredBundles['DoctrineBehaviorsBundle'] = '\Knp\DoctrineBehaviors\DoctrineBehaviorsBundle';
$requiredBundles['DoctrineFixturesBundle'] = '\Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle';
// Translation forms
$requiredBundles['A2lixAutoFormBundle'] = '\A2lix\AutoFormBundle\A2lixAutoFormBundle';
$requiredBundles['A2lixTranslationFormBundle'] = '\A2lix\TranslationFormBundle\A2lixTranslationFormBundle';
// CK Editor
$requiredBundles['FOSCKEditorBundle'] = '\FOS\CKEditorBundle\FOSCKEditorBundle';
// Core PEC-Bundles
$requiredBundles['PecPlatformBundle'] = '\Pec\Bundle\PlatformBundle\PecPlatformBundle';
\Pec\Bundle\KeenAdminThemeBundle\PecKeenAdminThemeBundle::getRequiredBundles($env, $requiredBundles);
\Pec\Bundle\MigrationBundle\PecMigrationBundle::getRequiredBundles($env, $requiredBundles);
\Pec\Bundle\Select2FormBundle\PecSelect2FormBundle::getRequiredBundles($env, $requiredBundles);
\Pec\Bundle\FormBundle\PecFormBundle::getRequiredBundles($env, $requiredBundles);
\Pec\Bundle\MenuBundle\PecMenuBundle::getRequiredBundles($env, $requiredBundles);
// \Pec\Bundle\UserBundle\PecUserBundle::getRequiredBundles($env, $requiredBundles);
\Pec\Bundle\SearchBundle\PecSearchBundle::getRequiredBundles($env, $requiredBundles);
// $bundles['PecTaggingBundle'] = '\Pec\Bundle\TaggingBundle\PecTaggingBundle';
// $requiredBundles['StingerBootstrapMaxLengthJsBundle'] = '\Stinger\BootstrapMaxLengthJsBundle\StingerBootstrapMaxLengthJsBundle';
$requiredBundles['StingerSoftTwigExtensionsBundle'] = '\StingerSoft\TwigExtensionsBundle\StingerSoftTwigExtensionsBundle';
$requiredBundles['StingerSoftAggridBundle'] = '\StingerSoft\AggridBundle\StingerSoftAggridBundle';
$requiredBundles['WebpackEncoreBundle'] = '\Symfony\WebpackEncoreBundle\WebpackEncoreBundle';
if(in_array($env, array(
'dev',
'test'
))) {
$requiredBundles['DebugBundle'] = '\Symfony\Bundle\DebugBundle\DebugBundle';
$requiredBundles['WebProfilerBundle'] = '\Symfony\Bundle\WebProfilerBundle\WebProfilerBundle';
}
return $requiredBundles;
}
public static function addBundle(array $bundlesToAdd, array &$bundles) {
array_merge($bundles, $bundlesToAdd);
}
/**
*
* {@inheritdoc}
*
* @see \Symfony\Component\HttpKernel\Bundle\Bundle::build()
*/
public function build(ContainerBuilder $container) {
parent::build($container);
$container->registerForAutoconfiguration(RoleService::class)->addTag(RoleService::SERVICE_TAG);
$container->addCompilerPass(new GroupCompilerPass());
$container->addCompilerPass(new RoleServiceCompilerPass());
$container->addCompilerPass(new LoginService());
$container->addCompilerPass(new ThemeCompilerPass());
$container->addCompilerPass(new ExceptionListenerPass());
$container->addCompilerPass(new DisableVoteListenerPass());
}
}