diff --git a/Command/GenerateDocsCommand.php b/Command/GenerateDocsCommand.php index 7e2e53e..5217016 100644 --- a/Command/GenerateDocsCommand.php +++ b/Command/GenerateDocsCommand.php @@ -24,16 +24,12 @@ #[AsCommand(name: 'swagger:generate-docs', description: 'Generates swagger docs')] class GenerateDocsCommand extends Command { - private readonly Generator $generator; - /** * @param Generator $generator */ - public function __construct(Generator $generator) + public function __construct(private readonly Generator $generator) { parent::__construct(); - - $this->generator = $generator; } /** diff --git a/Config/ConfigParser.php b/Config/ConfigParser.php index 8118e0b..00512e2 100644 --- a/Config/ConfigParser.php +++ b/Config/ConfigParser.php @@ -21,14 +21,11 @@ */ class ConfigParser { - private string $configFolder; - /** * @param string $configFolder */ - public function __construct(string $configFolder) + public function __construct(private readonly string $configFolder) { - $this->configFolder = $configFolder; } /** diff --git a/DependencyInjection/SwaggerExtension.php b/DependencyInjection/SwaggerExtension.php index d876e82..25c2ab5 100644 --- a/DependencyInjection/SwaggerExtension.php +++ b/DependencyInjection/SwaggerExtension.php @@ -14,7 +14,7 @@ use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; +use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; use Symfony\Component\HttpKernel\DependencyInjection\Extension; /** @@ -31,7 +31,7 @@ public function load(array $configs, ContainerBuilder $container): void $config = $this->processConfiguration($configuration, $configs); $container->setParameter('swagger.config_folder', $config['config_folder']); - $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); - $loader->load('services.yaml'); + $loader = new PhpFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader->load('services.php'); } } diff --git a/Generator/Generator.php b/Generator/Generator.php index f364524..e8dcbc7 100644 --- a/Generator/Generator.php +++ b/Generator/Generator.php @@ -21,22 +21,13 @@ */ class Generator { - private readonly Environment $twig; - - private readonly ConfigParser $configParser; - - private readonly string $docsFolder; - /** * @param Environment $twig * @param ConfigParser $configParser * @param string $docsFolder */ - public function __construct(Environment $twig, ConfigParser $configParser, string $docsFolder) + public function __construct(private readonly Environment $twig, private readonly ConfigParser $configParser, private readonly string $docsFolder) { - $this->twig = $twig; - $this->configParser = $configParser; - $this->docsFolder = $docsFolder; } /** diff --git a/Resources/config/services.php b/Resources/config/services.php new file mode 100644 index 0000000..45de77a --- /dev/null +++ b/Resources/config/services.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; + +return static function (ContainerConfigurator $containerConfigurator): void { + $services = $containerConfigurator->services(); + + $services + ->defaults() + ->autowire() + ->autoconfigure() + ->bind('$configFolder', '%swagger.config_folder%') + ->bind('$docsFolder', '%kernel.project_dir%/public/api/') + ; + + $services->load('StfalconStudio\SwaggerBundle\\', __DIR__.'/../../{Command,Config,Generator}'); +}; diff --git a/Resources/config/services.yaml b/Resources/config/services.yaml deleted file mode 100644 index 1aeea2d..0000000 --- a/Resources/config/services.yaml +++ /dev/null @@ -1,11 +0,0 @@ -services: - _defaults: - autowire: true - autoconfigure: true - public: false - bind: - $configFolder: "%swagger.config_folder%" - $docsFolder: "%kernel.project_dir%/public/api/" - - StfalconStudio\SwaggerBundle\: - resource: '../../{Command,Config,Generator}' diff --git a/composer.json b/composer.json index 422ac5e..2eb2ae6 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ }, "require-dev": { "escapestudios/symfony2-coding-standard": "^3.12", - "phpstan/phpstan": "^1.7.10", + "phpstan/phpstan": "^1.8.2", "phpstan/phpstan-doctrine": "^1.3", "phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-symfony": "^1.2", @@ -43,5 +43,11 @@ "psr-4": { "StfalconStudio\\SwaggerBundle\\Tests\\": "Tests/" } + }, + "config": { + "sort-packages": true, + "allow-plugins": { + "symfony/flex": true + } } }