Skip to content

Instantly share code, notes, and snippets.

@lyrixx
Last active November 10, 2023 14:27
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • 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
};
@bencagri
Copy link

cool. 👏

@gravataLonga
Copy link

Sorry my stupidity, but what is for?

@lyrixx
Copy link
Author

lyrixx commented Sep 19, 2023

I often need to test "something" in my application, and it helps me to test that thing.

For example

  • Do I setup my CASCADE relation in the good direction : what does happen when I delete a project, does it also delete the organization
  • How does my Doctrine type behave if my column is empty
  • etc

It could be also solved with

  • an integration test
  • a custom debug command
  • a custom debug controller
  • etc.

But I have this habit for a very long time, and I like to be able to "hack" and prototype quickly. So in almost every projects I work on have this test.php file.

@gravataLonga
Copy link

Oh ok, gotcha you.

@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

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