symplify/php-config-printer

Print Symfony services array with configuration to to plain PHP file format thanks to this simple php-parser wrapper

11.3.8 2023-12-16 17:20 UTC

This package is auto-updated.

Last update: 2024-10-16 19:14:13 UTC


README

Downloads total

Print Symfony services array with configuration to to plain PHP file format thanks to this simple php-parser wrapper

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
        // ...
    }
}