SYMFONY Integration Checker
Installation
$ composer require pedrotroller/symfony-integration-checker --dev
Usage
You just have to create a .symfony_checker
. This script should return a callback. This callback will have an instance of PedroTroller\Symfony\IntegrationChecker\ConfigurableKernel
as parameter., (*1)
use PedroTroller\Symfony\IntegrationChecker\ConfigurableKernel;
return function (ConfigurableKernel $kernel) {
// Your configuration
};
Launch the checker
$ ./bin/symfony-integration-checker check
Available kernel customization
$kernel->addBundle(BundleInterface $bundle)
: you can dynamically inject bundles into your kernel., (*2)
$kernel->setConfig(array $config)
: inject a configuration., (*3)
$kernel->setContainerBuilder(ContainerBuilder $container)
: inject your own container., (*4)
$kernel->afterBoot(callable $callable)
: inject a callable. This callable will be executed after the kernel boot., (*5)
Example
<?php
use PedroTroller\Symfony\IntegrationChecker\ConfigurableKernel;
use Symfony\Bundle\FrameworkBundle\FrameworkBundle;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Translation\TranslatorInterface;
$config = array(
'framework' => array(
'translator' => array(
'enabled' => true,
),
),
);
$test = function (KernelInterface $kernel) {
if (false === $kernel->getContainer()->get('translator') instanceof TranslatorInterface) {
throw new \Exception('Oups, there is a problem !');
}
};
return function (ConfigurableKernel $kernel) use ($config, $test) {
$container = new ContainerBuilder();
$container->setParameter('kernel.secret', md5(time()));
$kernel
->setContainerBuilder($container)
->setConfig($config)
->addBundle(new FrameworkBundle())
->afterBoot($test)
;
};