diff --git a/docs/generators/php-symfony.md b/docs/generators/php-symfony.md index f753b27a1b2..d1d86710b90 100644 --- a/docs/generators/php-symfony.md +++ b/docs/generators/php-symfony.md @@ -20,6 +20,7 @@ sidebar_label: php-symfony |artifactVersion|The version to use in the composer package version field. e.g. 1.2.3| |null| |composerVendorName|The vendor name used in the composer package name. The template uses {{composerVendorName}}/{{composerProjectName}} for the composer package name. e.g. yaypets| |null| |bundleName|The name of the Symfony bundle. The template uses {{bundleName}}| |null| +|bundleAlias|The alias of the Symfony bundle. The template uses {{aliasName}}| |null| |composerProjectName|The project name used in the composer package name. The template uses {{composerVendorName}}/{{composerProjectName}} for the composer package name. e.g. petstore-client| |null| |hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true| |phpLegacySupport|Should the generated code be compatible with PHP 5.x?| |true| diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSymfonyServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSymfonyServerCodegen.java index 8ec91b65124..1a46dd34b7d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSymfonyServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSymfonyServerCodegen.java @@ -35,6 +35,7 @@ public class PhpSymfonyServerCodegen extends AbstractPhpCodegen implements Codeg private static final Logger LOGGER = LoggerFactory.getLogger(PhpSymfonyServerCodegen.class); public static final String BUNDLE_NAME = "bundleName"; + public static final String BUNDLE_ALIAS = "bundleAlias"; public static final String COMPOSER_VENDOR_NAME = "composerVendorName"; public static final String COMPOSER_PROJECT_NAME = "composerProjectName"; public static final String PHP_LEGACY_SUPPORT = "phpLegacySupport"; @@ -87,6 +88,7 @@ public class PhpSymfonyServerCodegen extends AbstractPhpCodegen implements Codeg srcBasePath = "."; setInvokerPackage("OpenAPI\\Server"); setBundleName("OpenAPIServer"); + setBundleAlias("open_api_server"); modelDirName = "Model"; docsBasePath = "Resources" + "/" + "docs"; apiDocPath = docsBasePath + "/" + apiDirName; @@ -175,6 +177,7 @@ public class PhpSymfonyServerCodegen extends AbstractPhpCodegen implements Codeg cliOptions.add(new CliOption(COMPOSER_VENDOR_NAME, "The vendor name used in the composer package name." + " The template uses {{composerVendorName}}/{{composerProjectName}} for the composer package name. e.g. yaypets")); cliOptions.add(new CliOption(BUNDLE_NAME, "The name of the Symfony bundle. The template uses {{bundleName}}")); + cliOptions.add(new CliOption(BUNDLE_ALIAS, "The alias of the Symfony bundle. The template uses {{aliasName}}")); cliOptions.add(new CliOption(COMPOSER_PROJECT_NAME, "The project name used in the composer package name." + " The template uses {{composerVendorName}}/{{composerProjectName}} for the composer package name. e.g. petstore-client")); cliOptions.add(new CliOption(CodegenConstants.HIDE_GENERATION_TIMESTAMP, CodegenConstants.HIDE_GENERATION_TIMESTAMP_DESC) @@ -190,7 +193,14 @@ public class PhpSymfonyServerCodegen extends AbstractPhpCodegen implements Codeg this.bundleName = bundleName; this.bundleClassName = bundleName + "Bundle"; this.bundleExtensionName = bundleName + "Extension"; - this.bundleAlias = snakeCase(bundleName).replaceAll("([A-Z]+)", "\\_$1").toLowerCase(Locale.ROOT); + } + + public void setBundleAlias(String alias) { + if (alias != null && !alias.isEmpty()) { + this.bundleAlias = alias.toLowerCase(Locale.ROOT); + } else { + this.bundleAlias = snakeCase(bundleName).replaceAll("([A-Z]+)", "\\_$1").toLowerCase(Locale.ROOT); + } } public void setPhpLegacySupport(Boolean support) { @@ -244,6 +254,12 @@ public class PhpSymfonyServerCodegen extends AbstractPhpCodegen implements Codeg additionalProperties.put(BUNDLE_NAME, bundleName); } + if (additionalProperties.containsKey(BUNDLE_ALIAS)) { + this.setBundleAlias((String) additionalProperties.get(BUNDLE_ALIAS)); + } else { + additionalProperties.put(BUNDLE_ALIAS, bundleAlias); + } + if (additionalProperties.containsKey(COMPOSER_PROJECT_NAME)) { this.setComposerProjectName((String) additionalProperties.get(COMPOSER_PROJECT_NAME)); } else { diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/Compiler/OpenAPIServerApiPass.php b/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/Compiler/OpenAPIServerApiPass.php index d511f31763e..3e4b332a2f2 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/Compiler/OpenAPIServerApiPass.php +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/Compiler/OpenAPIServerApiPass.php @@ -51,14 +51,14 @@ class OpenAPIServerApiPass implements CompilerPassInterface */ public function process(ContainerBuilder $container) { // always first check if the primary service is defined - if (!$container->has('open_apiserver.api.api_server')) { + if (!$container->has('open_api_server.api.api_server')) { return; } - $definition = $container->findDefinition('open_apiserver.api.api_server'); + $definition = $container->findDefinition('open_api_server.api.api_server'); - // find all service IDs with the open_apiserver.api tag - $taggedServices = $container->findTaggedServiceIds('open_apiserver.api'); + // find all service IDs with the open_api_server.api tag + $taggedServices = $container->findTaggedServiceIds('open_api_server.api'); foreach ($taggedServices as $id => $tags) { foreach ($tags as $tag) { diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/OpenAPIServerExtension.php b/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/OpenAPIServerExtension.php index 89b593e692c..296d237bf6f 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/OpenAPIServerExtension.php +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/OpenAPIServerExtension.php @@ -52,6 +52,6 @@ class OpenAPIServerExtension extends Extension public function getAlias() { - return 'open_apiserver'; + return 'open_api_server'; } } diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/README.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/README.md index c5062648614..6c1bb9e07a5 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/README.md +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/README.md @@ -65,7 +65,7 @@ Step 3: Register the routes: ```yaml # app/config/routing.yml -open_apiserver: +open_api_server: resource: "@OpenAPIServerBundle/Resources/config/routing.yml" ``` @@ -111,7 +111,7 @@ services: acme.my_bundle.api.pet: class: Acme\MyBundle\Api\PetApi tags: - - { name: "open_apiserver.api", api: "pet" } + - { name: "open_api_server.api", api: "pet" } # ... ``` diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/routing.yml b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/routing.yml index 92fa44d1502..a571a4df29d 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/routing.yml +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/routing.yml @@ -3,143 +3,143 @@ # Do not edit the class manually. # pet -open_apiserver_pet_addpet: +open_api_server_pet_addpet: path: /pet methods: [POST] defaults: - _controller: open_apiserver.controller.pet:addPetAction + _controller: open_api_server.controller.pet:addPetAction -open_apiserver_pet_deletepet: +open_api_server_pet_deletepet: path: /pet/{petId} methods: [DELETE] defaults: - _controller: open_apiserver.controller.pet:deletePetAction + _controller: open_api_server.controller.pet:deletePetAction requirements: petId: '\d+' -open_apiserver_pet_findpetsbystatus: +open_api_server_pet_findpetsbystatus: path: /pet/findByStatus methods: [GET] defaults: - _controller: open_apiserver.controller.pet:findPetsByStatusAction + _controller: open_api_server.controller.pet:findPetsByStatusAction -open_apiserver_pet_findpetsbytags: +open_api_server_pet_findpetsbytags: path: /pet/findByTags methods: [GET] defaults: - _controller: open_apiserver.controller.pet:findPetsByTagsAction + _controller: open_api_server.controller.pet:findPetsByTagsAction -open_apiserver_pet_getpetbyid: +open_api_server_pet_getpetbyid: path: /pet/{petId} methods: [GET] defaults: - _controller: open_apiserver.controller.pet:getPetByIdAction + _controller: open_api_server.controller.pet:getPetByIdAction requirements: petId: '\d+' -open_apiserver_pet_updatepet: +open_api_server_pet_updatepet: path: /pet methods: [PUT] defaults: - _controller: open_apiserver.controller.pet:updatePetAction + _controller: open_api_server.controller.pet:updatePetAction -open_apiserver_pet_updatepetwithform: +open_api_server_pet_updatepetwithform: path: /pet/{petId} methods: [POST] defaults: - _controller: open_apiserver.controller.pet:updatePetWithFormAction + _controller: open_api_server.controller.pet:updatePetWithFormAction requirements: petId: '\d+' -open_apiserver_pet_uploadfile: +open_api_server_pet_uploadfile: path: /pet/{petId}/uploadImage methods: [POST] defaults: - _controller: open_apiserver.controller.pet:uploadFileAction + _controller: open_api_server.controller.pet:uploadFileAction requirements: petId: '\d+' # store -open_apiserver_store_deleteorder: +open_api_server_store_deleteorder: path: /store/order/{orderId} methods: [DELETE] defaults: - _controller: open_apiserver.controller.store:deleteOrderAction + _controller: open_api_server.controller.store:deleteOrderAction requirements: orderId: '[a-z0-9]+' -open_apiserver_store_getinventory: +open_api_server_store_getinventory: path: /store/inventory methods: [GET] defaults: - _controller: open_apiserver.controller.store:getInventoryAction + _controller: open_api_server.controller.store:getInventoryAction -open_apiserver_store_getorderbyid: +open_api_server_store_getorderbyid: path: /store/order/{orderId} methods: [GET] defaults: - _controller: open_apiserver.controller.store:getOrderByIdAction + _controller: open_api_server.controller.store:getOrderByIdAction requirements: orderId: '\d+' -open_apiserver_store_placeorder: +open_api_server_store_placeorder: path: /store/order methods: [POST] defaults: - _controller: open_apiserver.controller.store:placeOrderAction + _controller: open_api_server.controller.store:placeOrderAction # user -open_apiserver_user_createuser: +open_api_server_user_createuser: path: /user methods: [POST] defaults: - _controller: open_apiserver.controller.user:createUserAction + _controller: open_api_server.controller.user:createUserAction -open_apiserver_user_createuserswitharrayinput: +open_api_server_user_createuserswitharrayinput: path: /user/createWithArray methods: [POST] defaults: - _controller: open_apiserver.controller.user:createUsersWithArrayInputAction + _controller: open_api_server.controller.user:createUsersWithArrayInputAction -open_apiserver_user_createuserswithlistinput: +open_api_server_user_createuserswithlistinput: path: /user/createWithList methods: [POST] defaults: - _controller: open_apiserver.controller.user:createUsersWithListInputAction + _controller: open_api_server.controller.user:createUsersWithListInputAction -open_apiserver_user_deleteuser: +open_api_server_user_deleteuser: path: /user/{username} methods: [DELETE] defaults: - _controller: open_apiserver.controller.user:deleteUserAction + _controller: open_api_server.controller.user:deleteUserAction requirements: username: '[a-z0-9]+' -open_apiserver_user_getuserbyname: +open_api_server_user_getuserbyname: path: /user/{username} methods: [GET] defaults: - _controller: open_apiserver.controller.user:getUserByNameAction + _controller: open_api_server.controller.user:getUserByNameAction requirements: username: '[a-z0-9]+' -open_apiserver_user_loginuser: +open_api_server_user_loginuser: path: /user/login methods: [GET] defaults: - _controller: open_apiserver.controller.user:loginUserAction + _controller: open_api_server.controller.user:loginUserAction -open_apiserver_user_logoutuser: +open_api_server_user_logoutuser: path: /user/logout methods: [GET] defaults: - _controller: open_apiserver.controller.user:logoutUserAction + _controller: open_api_server.controller.user:logoutUserAction -open_apiserver_user_updateuser: +open_api_server_user_updateuser: path: /user/{username} methods: [PUT] defaults: - _controller: open_apiserver.controller.user:updateUserAction + _controller: open_api_server.controller.user:updateUserAction requirements: username: '[a-z0-9]+' diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/services.yml b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/services.yml index 0f28cdea5d2..a9363de5efb 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/services.yml +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/services.yml @@ -3,48 +3,48 @@ # Do not edit the class manually. parameters: - open_apiserver.serializer: 'OpenAPI\Server\Service\JmsSerializer' - open_apiserver.validator: 'OpenAPI\Server\Service\SymfonyValidator' + open_api_server.serializer: 'OpenAPI\Server\Service\JmsSerializer' + open_api_server.validator: 'OpenAPI\Server\Service\SymfonyValidator' services: - open_apiserver.api.api_server: + open_api_server.api.api_server: class: OpenAPI\Server\Api\ApiServer - open_apiserver.model.model_serializer: + open_api_server.model.model_serializer: class: OpenAPI\Server\Model\ModelSerializer - open_apiserver.service.serializer: - class: '%open_apiserver.serializer%' + open_api_server.service.serializer: + class: '%open_api_server.serializer%' - open_apiserver.service.validator: - class: '%open_apiserver.validator%' + open_api_server.service.validator: + class: '%open_api_server.validator%' arguments: - '@validator' - open_apiserver.controller.pet: + open_api_server.controller.pet: class: OpenAPI\Server\Controller\PetController calls: - - [setSerializer, ['@open_apiserver.service.serializer']] - - [setValidator, ['@open_apiserver.service.validator']] - - [setApiServer, ['@open_apiserver.api.api_server']] + - [setSerializer, ['@open_api_server.service.serializer']] + - [setValidator, ['@open_api_server.service.validator']] + - [setApiServer, ['@open_api_server.api.api_server']] tags: ['controller.service_arguments'] autowire: true - open_apiserver.controller.store: + open_api_server.controller.store: class: OpenAPI\Server\Controller\StoreController calls: - - [setSerializer, ['@open_apiserver.service.serializer']] - - [setValidator, ['@open_apiserver.service.validator']] - - [setApiServer, ['@open_apiserver.api.api_server']] + - [setSerializer, ['@open_api_server.service.serializer']] + - [setValidator, ['@open_api_server.service.validator']] + - [setApiServer, ['@open_api_server.api.api_server']] tags: ['controller.service_arguments'] autowire: true - open_apiserver.controller.user: + open_api_server.controller.user: class: OpenAPI\Server\Controller\UserController calls: - - [setSerializer, ['@open_apiserver.service.serializer']] - - [setValidator, ['@open_apiserver.service.validator']] - - [setApiServer, ['@open_apiserver.api.api_server']] + - [setSerializer, ['@open_api_server.service.serializer']] + - [setValidator, ['@open_api_server.service.validator']] + - [setApiServer, ['@open_api_server.api.api_server']] tags: ['controller.service_arguments'] autowire: true diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/PetApiInterface.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/PetApiInterface.md index 71bf1fb49f2..41b9776c01c 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/PetApiInterface.md +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/PetApiInterface.md @@ -22,7 +22,7 @@ services: acme.my_bundle.api.pet: class: Acme\MyBundle\Api\PetApi tags: - - { name: "open_apiserver.api", api: "pet" } + - { name: "open_api_server.api", api: "pet" } # ... ``` diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/StoreApiInterface.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/StoreApiInterface.md index 513e8d5ffc9..0a1f4154f6d 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/StoreApiInterface.md +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/StoreApiInterface.md @@ -18,7 +18,7 @@ services: acme.my_bundle.api.store: class: Acme\MyBundle\Api\StoreApi tags: - - { name: "open_apiserver.api", api: "store" } + - { name: "open_api_server.api", api: "store" } # ... ``` diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/UserApiInterface.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/UserApiInterface.md index 883abc7d8b2..b0b43a35b5d 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/UserApiInterface.md +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/UserApiInterface.md @@ -22,7 +22,7 @@ services: acme.my_bundle.api.user: class: Acme\MyBundle\Api\UserApi tags: - - { name: "open_apiserver.api", api: "user" } + - { name: "open_api_server.api", api: "user" } # ... ```