Print Symfony services array with configuration to to plain PHP file format using nikic/php-parser
Install
composer require symplify/php-config-printer --dev
Register config in your services:
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Symplify\PhpConfigPrinter\ValueObject\PhpConfigPrinterConfig; return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->import(PhpConfigPrinterConfig::FILE_PATH); };
Use
1. Only Configured Services
use Symplify\PhpConfigPrinter\Printer\SmartPhpConfigPrinter; /** @var SmartPhpConfigPrinter $smartConfigPrinter */ $config = [ 'SomeService' => [ 'key' => 'value', ], ]; $smartConfigPrinter->printConfiguredServices($config);
2. Full Config
use Symplify\ConfigTransformer\Converter\YamlToPhpConverter; class SomeClass { /** * @var YamlToPhpConverter */ private $yamlToPhpConverter; public function __construct(YamlToPhpConverter $yamlToPhpConverter) { $this->yamlToPhpConverter = $yamlToPhpConverter; } public function run(): void { $phpFileContent = $this->yamlToPhpConverter->convertYamlArray([ 'parameters' => [ 'key' => 'value', ], 'services' => [ '_defaults' => [ 'autowire' => true, 'autoconfigure' => true, ], ], ]); // dump the $phpFileContent file // ... } }