/symplify-kernel

Internal Kernel for Symplify packages

Primary LanguagePHPMIT LicenseMIT

Symplify Kernel

Downloads total

Do you use Symfony Kernel, but not for PHP projects?

Use Symfony Kernel for:

  • light Symfony Console Apps without Http
  • faster and easy-to-setup tests
  • merging of array parameters in 2 configs

Install

composer require symplify/symplify-kernel --dev

Usage

1. Light Kernel for Symfony CLI Apps

use Psr\Container\ContainerInterface;
use Symplify\SymplifyKernel\ContainerBuilderFactory;

final class MonorepoBuilderKernel
{
    /**
     * @param string[] $configFiles
     */
    public function createFromConfigs(array $configFiles): ContainerInterface
    {
        // local config here
        $configFiles[] = __DIR__ . '/../../config/config.php';

        $containerBuilderFactory = new ContainerBuilderFactory();
        $containerBuilder = $containerBuilderFactory->create($configFiles, [], []);

        // build the container
        $containerBuilder->compile();

        return $containerBuilder;
    }
}

Then use in your bin/app.php file:

$easyCIKernel = new MonorepoBuilderKernel();
$easyCIKernel->createFromConfigs([__DIR__ . '/config/config.php']);

$container = $easyCIKernel->getContainer();

/** @var Application $application */
$application = $container->get(Application::class);
exit($application->run());

That's it!


Report Issues

In case you are experiencing a bug or want to request a new feature head over to the Symplify monorepo issue tracker

Contribute

The sources of this package are contained in the Symplify monorepo. We welcome contributions for this package on symplify/symplify.