Si has usado Laravel seguro que estás de acuerdo conmigo en que una de las maravillas de este framwork es Laravel Tinker. Esta consola interactiva nos permite escribir código de PHP usando todo el framework y hacer pruebas muy rápido.

Hoy vamos a ver como podemos implementar esta consola en Symfony gracias a Psysh.

Instalar Psysh en Symfony

Para integrar esta consola en Symfony vamos a usar el PsyshBundle de theofidry y composer y simplemente registrarlo en los bundles de nuestro proyecto.

composer require --dev theofidry/psysh-bundle
<?php
 
 return [
 	// ...
    
	Fidry\PsyshBundle\PsyshBundle::class => ['loc' => true],
 ];

Podemos elegir el entorno o entornos en los que queremos que este disponible la consola. En mi caso lo he instalado solo en loc (entorno local).

Usar Psysh

Una vez que hemos instalado y configurado el bundle tal y como vemos en el paso anterior simplemente podremos arrancar la consola como ejecutaríamos cualquier comando de Symfony.

# Symfony > 3.0
php bin/console psysh

# Symfony < 3.0
php app/console psysh

# Symfony > 4.0
bin/console psysh

Desde esa consola podremos traernos cualquier servicio o clase del proyecto usando el contenedor de Symfony:

$anyService = $container->get(AnyService::class);

Además, podremos usar algunas de las variables que nos provee el propio Psysh para hacernos la vida más fácil:

$_              // Last result
$_e             // Last exception
$__out          // Last stdout output
$__file         // Last file path
$__line         // Last line
$__dir          // Last directory path
$__class        // Last class name
$__method       // Last method name
$__function     // Last function name
$__namespace    // Last namespace name

bobthecow/psysh
A REPL for PHP. Contribute to bobthecow/psysh development by creating an account on GitHub.
-
laravel/tinker
Contribute to laravel/tinker development by creating an account on GitHub.