Spaces:
No application file
No application file
use Doctrine\Bundle\FixturesBundle\DependencyInjection\CompilerPass\FixturesCompilerPass; | |
use Mautic\CoreBundle\Loader\ParameterLoader; | |
use Mautic\CoreBundle\Test\EnvLoader; | |
use Symfony\Component\DependencyInjection\Reference; | |
/** @var Symfony\Component\DependencyInjection\ContainerBuilder $container */ | |
// Include path settings | |
$root = $container->getParameter('mautic.application_dir').'/app'; | |
$configBaseDir = ParameterLoader::getLocalConfigBaseDir($root); | |
$loader->import('config.php'); | |
EnvLoader::load(); | |
// Define some constants from .env | |
defined('MAUTIC_TABLE_PREFIX') || define('MAUTIC_TABLE_PREFIX', getenv('MAUTIC_DB_PREFIX') ?: ''); | |
defined('MAUTIC_ENV') || define('MAUTIC_ENV', getenv('MAUTIC_ENV') ?: 'test'); | |
// Twig Configuration | |
$container->loadFromExtension('twig', [ | |
'cache' => false, | |
'debug' => '%kernel.debug%', | |
'strict_variables' => true, | |
'paths' => [ | |
'%mautic.application_dir%/app/bundles' => 'bundles', | |
'%mautic.application_dir%/app/bundles/CoreBundle' => 'MauticCore', | |
'%mautic.application_dir%/themes' => 'themes', | |
], | |
'form_themes' => [ | |
// Can be found at bundles/CoreBundle/Resources/views/mautic_form_layout.html.twig | |
'@MauticCore/FormTheme/mautic_form_layout.html.twig', | |
], | |
]); | |
$container->loadFromExtension('framework', [ | |
'test' => true, | |
'session' => [ | |
'storage_id' => 'session.storage.mock_file', | |
'name' => 'MOCKSESSION', | |
], | |
'profiler' => [ | |
'collect' => false, | |
], | |
'translator' => [ | |
'enabled' => true, | |
], | |
'csrf_protection' => [ | |
'enabled' => true, | |
], | |
]); | |
$container->setParameter('mautic.famework.csrf_protection', true); | |
$container->loadFromExtension('web_profiler', [ | |
'toolbar' => false, | |
'intercept_redirects' => false, | |
]); | |
$connectionSettings = [ | |
'host' => '%env(DB_HOST)%' ?: '%mautic.db_host%', | |
'port' => '%env(DB_PORT)%' ?: '%mautic.db_port%', | |
'dbname' => '%env(DB_NAME)%' ?: '%mautic.db_name%', | |
'user' => '%env(DB_USER)%' ?: '%mautic.db_user%', | |
'password' => '%env(DB_PASSWD)%' ?: '%mautic.db_password%', | |
'options' => [PDO::ATTR_STRINGIFY_FETCHES => true], // @see https://www.php.net/manual/en/migration81.incompatible.php#migration81.incompatible.pdo.mysql | |
]; | |
$container->loadFromExtension('doctrine', [ | |
'dbal' => [ | |
'connections' => [ | |
'default' => $connectionSettings, | |
'unbuffered' => $connectionSettings, | |
], | |
], | |
]); | |
$container->setParameter('mautic.db_table_prefix', MAUTIC_TABLE_PREFIX); | |
$container->loadFromExtension('monolog', [ | |
'channels' => [ | |
'mautic', | |
], | |
'handlers' => [ | |
'main' => [ | |
'formatter' => 'mautic.monolog.fulltrace.formatter', | |
'type' => 'rotating_file', | |
'path' => '%kernel.logs_dir%/%kernel.environment%.php', | |
'level' => getenv('MAUTIC_DEBUG_LEVEL') ?: 'error', | |
'channels' => [ | |
'!mautic', | |
], | |
'max_files' => 7, | |
], | |
'console' => [ | |
'type' => 'console', | |
'bubble' => false, | |
], | |
'mautic' => [ | |
'formatter' => 'mautic.monolog.fulltrace.formatter', | |
'type' => 'rotating_file', | |
'path' => '%kernel.logs_dir%/mautic_%kernel.environment%.php', | |
'level' => getenv('MAUTIC_DEBUG_LEVEL') ?: 'error', | |
'channels' => [ | |
'mautic', | |
], | |
'max_files' => 7, | |
], | |
], | |
]); | |
$container->loadFromExtension('liip_test_fixtures', [ | |
'cache_db' => [ | |
'sqlite' => 'liip_functional_test.services_database_backup.sqlite', | |
], | |
'keep_database_and_schema' => true, | |
]); | |
$loader->import('security_test.php'); | |
// Allow overriding config without a requiring a full bundle or hacks | |
if (file_exists($configBaseDir.'/config/config_override.php')) { | |
$loader->import($configBaseDir.'/config/config_override.php'); | |
} | |
// Add required parameters | |
$container->setParameter('mautic.secret_key', '68c7e75470c02cba06dd543431411e0de94e04fdf2b3a2eac05957060edb66d0'); | |
$container->setParameter('mautic.security.disableUpdates', true); | |
$container->setParameter('mautic.rss_notification_url', null); | |
$container->setParameter('mautic.batch_sleep_time', 0); | |
// Turn off creating of indexes in lead field fixtures | |
$container->register('mautic.install.fixture.lead_field', Mautic\InstallBundle\InstallFixtures\ORM\LeadFieldData::class) | |
->addArgument(new Reference('translator')) | |
->addTag(FixturesCompilerPass::FIXTURE_TAG) | |
->setPublic(true); | |
// Use static namespace for token manager | |
$container->register('security.csrf.token_manager', Symfony\Component\Security\Csrf\CsrfTokenManager::class) | |
->addArgument(new Reference('security.csrf.token_generator')) | |
->addArgument(new Reference('security.csrf.token_storage')) | |
->addArgument('test') | |
->setPublic(true); | |
// HTTP client mock handler providing response queue | |
$container->register(GuzzleHttp\Handler\MockHandler::class)->setPublic(true); | |
$container->register('http_client', Symfony\Component\HttpClient\MockHttpClient::class) | |
->setPublic(true); | |
$container->register('test.service_container', Mautic\CoreBundle\Test\Container\TestContainer::class) | |
->setArgument('$kernel', new Reference('kernel')) | |
->setArgument('$privateServicesLocatorId', 'test.private_services_locator') | |
->setPublic(true); | |