Skip to content

Instantly share code, notes, and snippets.

@lyrixx
Last active July 18, 2024 09:51
Show Gist options
  • Save lyrixx/2ea147609dc632d26e366aef60f61a9f to your computer and use it in GitHub Desktop.
Save lyrixx/2ea147609dc632d26e366aef60f61a9f to your computer and use it in GitHub Desktop.
Symfony Playgound with its Container and a custom configuration
<?php
use App\Kernel;
require __DIR__.'/vendor/autoload_runtime.php';
use Symfony\Component\Console\Output\StreamOutput;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
return function () {
$k = new class('dev', true) extends Kernel implements CompilerPassInterface {
public function process(ContainerBuilder $container)
{
$container->getAlias('logger')->setPublic(true);
$container->getDefinition('monolog.handler.console')->setPublic(true);
}
};
$k->boot();
$c = $k->getContainer();
$c->get('monolog.handler.console')->setOutput(
new StreamOutput(fopen('php://stdout', 'w'),
StreamOutput::VERBOSITY_VERY_VERBOSE,
));
$logger = $c->get('logger');
$em = $c->get('doctrine.orm.entity_manager');
// Start of playground
};
@Spomky
Copy link

Spomky commented Nov 10, 2023

Very good! Thanks you.
It is worth mentioning that this command can be executed using symfony php test.php

@florianorineveu
Copy link

Very useful, thx for sharing! 🔥

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment