From f1cc9b624369c62fcee0fb221b1333184528eae0 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Mon, 25 Jul 2022 17:32:27 +0200 Subject: [PATCH 01/18] use .yaml instead of .yml This is recommended by Symfony standards --- .../codegen/languages/PhpSymfonyServerCodegen.java | 4 ++-- .../src/main/resources/php-symfony/Extension.mustache | 2 +- .../src/main/resources/php-symfony/README.mustache | 4 ++-- .../src/main/resources/php-symfony/api_doc.mustache | 2 +- .../src/main/resources/php-symfony/gitignore | 2 +- .../src/main/resources/php-symfony/testing/AppKernel.mustache | 2 +- .../src/main/resources/php-symfony/testing/test_config.yml | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) 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 ea70427fb3f9..277d78a5af7d 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 @@ -360,8 +360,8 @@ public void processOpts() { supportingFiles.add(new SupportingFile("testing/ControllerTest.mustache", toSrcPath(controllerTestsPackage, srcBasePath), "ControllerTest.php")); supportingFiles.add(new SupportingFile("testing/test_config.yml", toSrcPath(testsPackage, srcBasePath), "test_config.yml")); - supportingFiles.add(new SupportingFile("routing.mustache", configDir, "routing.yml")); - supportingFiles.add(new SupportingFile("services.mustache", configDir, "services.yml")); + supportingFiles.add(new SupportingFile("routing.mustache", configDir, "routing.yaml")); + supportingFiles.add(new SupportingFile("services.mustache", configDir, "services.yaml")); supportingFiles.add(new SupportingFile("composer.mustache", "", "composer.json")); supportingFiles.add(new SupportingFile("autoload.mustache", "", "autoload.php")); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); diff --git a/modules/openapi-generator/src/main/resources/php-symfony/Extension.mustache b/modules/openapi-generator/src/main/resources/php-symfony/Extension.mustache index dffd4cbb33a1..43914fe6728f 100644 --- a/modules/openapi-generator/src/main/resources/php-symfony/Extension.mustache +++ b/modules/openapi-generator/src/main/resources/php-symfony/Extension.mustache @@ -37,7 +37,7 @@ class {{bundleExtensionName}} extends Extension public function load(array $configs, ContainerBuilder $container): void { $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); - $loader->load('services.yml'); + $loader->load('services.yaml'); } public function getAlias(): string diff --git a/modules/openapi-generator/src/main/resources/php-symfony/README.mustache b/modules/openapi-generator/src/main/resources/php-symfony/README.mustache index 7cc1cda4719b..186feb627320 100644 --- a/modules/openapi-generator/src/main/resources/php-symfony/README.mustache +++ b/modules/openapi-generator/src/main/resources/php-symfony/README.mustache @@ -71,7 +71,7 @@ Step 3: Register the routes: ```yaml # app/config/routes.yaml {{bundleAlias}}: - resource: "@{{bundleName}}Bundle/Resources/config/routing.yml" + resource: "@{{bundleName}}Bundle/Resources/config/routing.yaml" ``` Step 4: Implement the API calls: @@ -119,7 +119,7 @@ class {{baseName}}Api implements {{classname}} // An interface is autogenerated Step 5: Tag your API implementation: ```yaml -# config/services.yml +# config/services.yaml services: # ... Acme\MyBundle\Api\{{baseName}}Api: diff --git a/modules/openapi-generator/src/main/resources/php-symfony/api_doc.mustache b/modules/openapi-generator/src/main/resources/php-symfony/api_doc.mustache index 67bedf3ed78a..e244934ae97d 100644 --- a/modules/openapi-generator/src/main/resources/php-symfony/api_doc.mustache +++ b/modules/openapi-generator/src/main/resources/php-symfony/api_doc.mustache @@ -11,7 +11,7 @@ Method | HTTP request | Description {{#operations}} ## Service Declaration ```yaml -# config/services.yml +# config/services.yaml services: # ... Acme\MyBundle\Api\{{baseName}}Api: diff --git a/modules/openapi-generator/src/main/resources/php-symfony/gitignore b/modules/openapi-generator/src/main/resources/php-symfony/gitignore index 3f90ef253e25..6070e9bfda9d 100644 --- a/modules/openapi-generator/src/main/resources/php-symfony/gitignore +++ b/modules/openapi-generator/src/main/resources/php-symfony/gitignore @@ -18,7 +18,7 @@ !var/sessions/.gitkeep # Parameters -/app/config/parameters.yml +/app/config/parameters.yaml /app/config/parameters.ini # Managed by Composer diff --git a/modules/openapi-generator/src/main/resources/php-symfony/testing/AppKernel.mustache b/modules/openapi-generator/src/main/resources/php-symfony/testing/AppKernel.mustache index dfd5e83f1f1d..acc950557968 100644 --- a/modules/openapi-generator/src/main/resources/php-symfony/testing/AppKernel.mustache +++ b/modules/openapi-generator/src/main/resources/php-symfony/testing/AppKernel.mustache @@ -24,6 +24,6 @@ class AppKernel extends Kernel */ public function registerContainerConfiguration(LoaderInterface $loader) { - $loader->load(__DIR__.'/test_config.yml'); + $loader->load(__DIR__.'/test_config.yaml'); } } diff --git a/modules/openapi-generator/src/main/resources/php-symfony/testing/test_config.yml b/modules/openapi-generator/src/main/resources/php-symfony/testing/test_config.yml index 4c7970ab71ad..9cd9521cbcfe 100644 --- a/modules/openapi-generator/src/main/resources/php-symfony/testing/test_config.yml +++ b/modules/openapi-generator/src/main/resources/php-symfony/testing/test_config.yml @@ -1,8 +1,8 @@ imports: - - { resource: "../Resources/config/services.yml" } + - { resource: "../Resources/config/services.yaml" } framework: secret: "testsecret" test: ~ router: - resource: "%kernel.project_dir%/Resources/config/routing.yml" + resource: "%kernel.project_dir%/Resources/config/routing.yaml" From 19750b663370d96b66a6598b0d808184bc40967f Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Mon, 25 Jul 2022 17:52:03 +0200 Subject: [PATCH 02/18] save Bundle files also to src path --- .../codegen/languages/PhpSymfonyServerCodegen.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 277d78a5af7d..466a469b4d0c 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 @@ -337,11 +337,12 @@ public void processOpts() { final String configDir = "Resources" + File.separator + "config"; final String dependencyInjectionDir = "DependencyInjection"; + final String compilerDir = dependencyInjectionDir + File.separator + "Compiler"; supportingFiles.add(new SupportingFile("Controller.mustache", toSrcPath(controllerPackage, srcBasePath), "Controller.php")); - supportingFiles.add(new SupportingFile("Bundle.mustache", "", bundleClassName + ".php")); - supportingFiles.add(new SupportingFile("Extension.mustache", dependencyInjectionDir, bundleExtensionName + ".php")); - supportingFiles.add(new SupportingFile("ApiPass.mustache", dependencyInjectionDir + File.separator + "Compiler", bundleName + "ApiPass.php")); + supportingFiles.add(new SupportingFile("Bundle.mustache", toSrcPath("", srcBasePath), bundleClassName + ".php")); + supportingFiles.add(new SupportingFile("Extension.mustache", toSrcPath(dependencyInjectionDir, srcBasePath), bundleExtensionName + ".php")); + supportingFiles.add(new SupportingFile("ApiPass.mustache", toSrcPath(compilerDir, srcBasePath), bundleName + "ApiPass.php")); supportingFiles.add(new SupportingFile("ApiServer.mustache", toSrcPath(apiPackage, srcBasePath), "ApiServer.php")); // Serialization components From 324c967558bfa882caa76abc96acba3b425f3a8c Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Mon, 25 Jul 2022 18:29:25 +0200 Subject: [PATCH 03/18] add test for generate ping --- .../php/PhpSymfonyServerCodegenTest.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index c8bad04db1cc..9fcf008f9686 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -53,4 +53,59 @@ public void testAdditionalPropertiesPutForConfigValues() throws Exception { Assert.assertEquals(codegen.isHideGenerationTimestamp(), false); } + @Test + public void testGeneratePing() throws Exception { + Map properties = new HashMap<>(); + //properties.put(CodegenConstants.API_PACKAGE, "xyz.abcdef.api"); + + File output = Files.createTempDirectory("test").toFile(); + + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName("php-symfony") + //.setLibrary(JavaClientCodegen.OKHTTP_GSON) + .setAdditionalProperties(properties) + .setInputSpec("src/test/resources/3_0/ping.yaml") + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + + final ClientOptInput clientOptInput = configurator.toClientOptInput(); + DefaultGenerator generator = new DefaultGenerator(); + List files = generator.opts(clientOptInput).generate(); + + //Assert.assertEquals(files.size(), 40); + TestUtils.ensureContainsFile(files, output, ".coveralls.yml"); + TestUtils.ensureContainsFile(files, output, ".gitignore"); + TestUtils.ensureContainsFile(files, output, ".openapi-generator-ignore"); + TestUtils.ensureContainsFile(files, output, ".openapi-generator/FILES"); + TestUtils.ensureContainsFile(files, output, ".openapi-generator/VERSION"); + TestUtils.ensureContainsFile(files, output, ".php_cs.dist"); + TestUtils.ensureContainsFile(files, output, ".travis.yml"); + TestUtils.ensureContainsFile(files, output, "autoload.php"); + TestUtils.ensureContainsFile(files, output, "composer.json"); + TestUtils.ensureContainsFile(files, output, "git_push.sh"); + TestUtils.ensureContainsFile(files, output, "phpunit.xml.dist"); + TestUtils.ensureContainsFile(files, output, "README.md"); + TestUtils.ensureContainsFile(files, output, "DependencyInjection/Compiler/NspPimcoreShopApiApiPass.php"); + TestUtils.ensureContainsFile(files, output, "DependencyInjection/NspPimcoreShopApiExtension.php"); + TestUtils.ensureContainsFile(files, output, "NspPimcoreShopApiBundle.php"); + TestUtils.ensureContainsFile(files, output, "Resources/config/routing.yml"); + TestUtils.ensureContainsFile(files, output, "Resources/config/services.yml"); + TestUtils.ensureContainsFile(files, output, "Resources/docs/Api/DefaultApiInterface.md"); + TestUtils.ensureContainsFile(files, output, "Api/ApiServer.php"); + TestUtils.ensureContainsFile(files, output, "Api/DefaultApiInterface.php"); + TestUtils.ensureContainsFile(files, output, "Controller/Controller.php"); + TestUtils.ensureContainsFile(files, output, "Controller/DefaultController.php"); + TestUtils.ensureContainsFile(files, output, "Service/JmsSerializer.php"); + TestUtils.ensureContainsFile(files, output, "Service/SerializerInterface.php"); + TestUtils.ensureContainsFile(files, output, "Service/StrictJsonDeserializationVisitor.php"); + TestUtils.ensureContainsFile(files, output, "Service/StrictJsonDeserializationVisitorFactory.php"); + TestUtils.ensureContainsFile(files, output, "Service/SymfonyValidator.php"); + TestUtils.ensureContainsFile(files, output, "Service/TypeMismatchException.php"); + TestUtils.ensureContainsFile(files, output, "Service/ValidatorInterface.php"); + TestUtils.ensureContainsFile(files, output, "Tests/Api/DefaultApiInterfaceTest.php"); + TestUtils.ensureContainsFile(files, output, "Tests/AppKernel.php"); + TestUtils.ensureContainsFile(files, output, "Tests/Controller/ControllerTest.php"); + TestUtils.ensureContainsFile(files, output, "Tests/test_config.yml"); + + output.deleteOnExit(); + } } From 222033d949a97bdb46169bbb3fd354e2e2b4895c Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 10:16:03 +0200 Subject: [PATCH 04/18] add package imports --- .../codegen/php/PhpSymfonyServerCodegenTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index 9fcf008f9686..05e9624c8086 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -17,11 +17,22 @@ package org.openapitools.codegen.php; +import java.io.File; +import java.nio.file.Files; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.openapitools.codegen.ClientOptInput; import org.openapitools.codegen.CodegenConstants; +import org.openapitools.codegen.DefaultGenerator; +import org.openapitools.codegen.TestUtils; +import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.languages.PhpSymfonyServerCodegen; import org.testng.Assert; import org.testng.annotations.Test; + public class PhpSymfonyServerCodegenTest { @Test From 03373627c0d09725f404f632a18b02f2d93e8ad4 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 11:05:35 +0200 Subject: [PATCH 05/18] fix expected file names --- .../codegen/php/PhpSymfonyServerCodegenTest.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index 05e9624c8086..2b09012a55e6 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -95,16 +95,16 @@ public void testGeneratePing() throws Exception { TestUtils.ensureContainsFile(files, output, "git_push.sh"); TestUtils.ensureContainsFile(files, output, "phpunit.xml.dist"); TestUtils.ensureContainsFile(files, output, "README.md"); - TestUtils.ensureContainsFile(files, output, "DependencyInjection/Compiler/NspPimcoreShopApiApiPass.php"); - TestUtils.ensureContainsFile(files, output, "DependencyInjection/NspPimcoreShopApiExtension.php"); - TestUtils.ensureContainsFile(files, output, "NspPimcoreShopApiBundle.php"); - TestUtils.ensureContainsFile(files, output, "Resources/config/routing.yml"); - TestUtils.ensureContainsFile(files, output, "Resources/config/services.yml"); - TestUtils.ensureContainsFile(files, output, "Resources/docs/Api/DefaultApiInterface.md"); TestUtils.ensureContainsFile(files, output, "Api/ApiServer.php"); TestUtils.ensureContainsFile(files, output, "Api/DefaultApiInterface.php"); TestUtils.ensureContainsFile(files, output, "Controller/Controller.php"); TestUtils.ensureContainsFile(files, output, "Controller/DefaultController.php"); + TestUtils.ensureContainsFile(files, output, "DependencyInjection/Compiler/OpenAPIServerApiPass.php"); + TestUtils.ensureContainsFile(files, output, "DependencyInjection/OpenAPIServerExtension.php"); + TestUtils.ensureContainsFile(files, output, "OpenAPIServerBundle.php"); + TestUtils.ensureContainsFile(files, output, "Resources/config/routing.yml"); + TestUtils.ensureContainsFile(files, output, "Resources/config/services.yml"); + TestUtils.ensureContainsFile(files, output, "Resources/docs/Api/DefaultApiInterface.md"); TestUtils.ensureContainsFile(files, output, "Service/JmsSerializer.php"); TestUtils.ensureContainsFile(files, output, "Service/SerializerInterface.php"); TestUtils.ensureContainsFile(files, output, "Service/StrictJsonDeserializationVisitor.php"); From 392b9a1f84d675a077da60510816728bde734c50 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 11:27:15 +0200 Subject: [PATCH 06/18] why is Api/ApiServer.php missing --- .../openapitools/codegen/php/PhpSymfonyServerCodegenTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index 2b09012a55e6..fb981c15ed6c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -95,7 +95,7 @@ public void testGeneratePing() throws Exception { TestUtils.ensureContainsFile(files, output, "git_push.sh"); TestUtils.ensureContainsFile(files, output, "phpunit.xml.dist"); TestUtils.ensureContainsFile(files, output, "README.md"); - TestUtils.ensureContainsFile(files, output, "Api/ApiServer.php"); + //TestUtils.ensureContainsFile(files, output, "Api/ApiServer.php"); TestUtils.ensureContainsFile(files, output, "Api/DefaultApiInterface.php"); TestUtils.ensureContainsFile(files, output, "Controller/Controller.php"); TestUtils.ensureContainsFile(files, output, "Controller/DefaultController.php"); From d680b930938b356b749ffa23973f122b6a483486 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 11:44:47 +0200 Subject: [PATCH 07/18] output filenames --- .../codegen/php/PhpSymfonyServerCodegenTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index fb981c15ed6c..83f031b40c7c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -82,6 +82,10 @@ public void testGeneratePing() throws Exception { DefaultGenerator generator = new DefaultGenerator(); List files = generator.opts(clientOptInput).generate(); + for (File file : files) { + System.out.println("Filename: " + file.getName()); + } + //Assert.assertEquals(files.size(), 40); TestUtils.ensureContainsFile(files, output, ".coveralls.yml"); TestUtils.ensureContainsFile(files, output, ".gitignore"); @@ -96,7 +100,7 @@ public void testGeneratePing() throws Exception { TestUtils.ensureContainsFile(files, output, "phpunit.xml.dist"); TestUtils.ensureContainsFile(files, output, "README.md"); //TestUtils.ensureContainsFile(files, output, "Api/ApiServer.php"); - TestUtils.ensureContainsFile(files, output, "Api/DefaultApiInterface.php"); + //TestUtils.ensureContainsFile(files, output, "Api/DefaultApiInterface.php"); TestUtils.ensureContainsFile(files, output, "Controller/Controller.php"); TestUtils.ensureContainsFile(files, output, "Controller/DefaultController.php"); TestUtils.ensureContainsFile(files, output, "DependencyInjection/Compiler/OpenAPIServerApiPass.php"); From 1515eb24fabe0c296455e8dba71f24721afc7f01 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 11:57:46 +0200 Subject: [PATCH 08/18] use getAbsolutePath for debug purpose --- .../openapitools/codegen/php/PhpSymfonyServerCodegenTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index 83f031b40c7c..0d5c56e19a23 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -83,7 +83,7 @@ public void testGeneratePing() throws Exception { List files = generator.opts(clientOptInput).generate(); for (File file : files) { - System.out.println("Filename: " + file.getName()); + System.out.println("Filepath: " + file.getAbsolutePath()); } //Assert.assertEquals(files.size(), 40); From c461d9ae72e9ac7f7e78ad3720fc6b28d1834656 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 12:27:35 +0200 Subject: [PATCH 09/18] do not use punctuation as current directory --- .../codegen/languages/PhpSymfonyServerCodegen.java | 2 +- .../codegen/php/PhpSymfonyServerCodegenTest.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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 466a469b4d0c..02bc6f6de34b 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 @@ -106,7 +106,7 @@ public PhpSymfonyServerCodegen() { importMapping.clear(); supportsInheritance = true; - srcBasePath = "."; + srcBasePath = ""; setInvokerPackage("OpenAPI\\Server"); setBundleName("OpenAPIServer"); setBundleAlias("open_api_server"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index 0d5c56e19a23..bbdca0152386 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -86,7 +86,7 @@ public void testGeneratePing() throws Exception { System.out.println("Filepath: " + file.getAbsolutePath()); } - //Assert.assertEquals(files.size(), 40); + //Assert.assertEquals(files.size(), 33); TestUtils.ensureContainsFile(files, output, ".coveralls.yml"); TestUtils.ensureContainsFile(files, output, ".gitignore"); TestUtils.ensureContainsFile(files, output, ".openapi-generator-ignore"); @@ -99,8 +99,8 @@ public void testGeneratePing() throws Exception { TestUtils.ensureContainsFile(files, output, "git_push.sh"); TestUtils.ensureContainsFile(files, output, "phpunit.xml.dist"); TestUtils.ensureContainsFile(files, output, "README.md"); - //TestUtils.ensureContainsFile(files, output, "Api/ApiServer.php"); - //TestUtils.ensureContainsFile(files, output, "Api/DefaultApiInterface.php"); + TestUtils.ensureContainsFile(files, output, "Api/ApiServer.php"); + TestUtils.ensureContainsFile(files, output, "Api/DefaultApiInterface.php"); TestUtils.ensureContainsFile(files, output, "Controller/Controller.php"); TestUtils.ensureContainsFile(files, output, "Controller/DefaultController.php"); TestUtils.ensureContainsFile(files, output, "DependencyInjection/Compiler/OpenAPIServerApiPass.php"); From 27d8008115af31ae60655602539a4b4d1330bedc Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 12:27:52 +0200 Subject: [PATCH 10/18] refactor: remove todos --- .../codegen/languages/AbstractPhpCodegen.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java index 76390232004d..78a09a212c6b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPhpCodegen.java @@ -246,21 +246,22 @@ public String getPackageName() { return packageName; } - public String toSrcPath(String packageName, String basePath) { - packageName = packageName.replace(invokerPackage, ""); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. - if (basePath != null && basePath.length() > 0) { - basePath = basePath.replaceAll("[\\\\/]?$", "") + File.separator; // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. + public String toSrcPath(final String packageName, final String basePath) { + String modifiedPackageName = packageName.replace(invokerPackage, ""); + String modifiedBasePath = basePath; + if (basePath != null && !basePath.isEmpty()) { + modifiedBasePath = basePath.replaceAll("[\\\\/]?$", "") + File.separator; } // Trim prefix file separators from package path String packagePath = StringUtils.removeStart( // Replace period, backslash, forward slash with file separator in package name - packageName.replaceAll("[\\.\\\\/]", Matcher.quoteReplacement("/")), + modifiedPackageName.replaceAll("[\\.\\\\/]", Matcher.quoteReplacement("/")), File.separator ); // Trim trailing file separators from the overall path - return StringUtils.removeEnd(basePath + packagePath, File.separator); + return StringUtils.removeEnd(modifiedBasePath + packagePath, File.separator); } @Override From e9535640be2da2a8f155ab2a1e9adfaeb035dae0 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 14:15:49 +0200 Subject: [PATCH 11/18] use also .yaml in test to fix it --- .../openapitools/codegen/php/PhpSymfonyServerCodegenTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index bbdca0152386..aa8ed3a78d94 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -106,8 +106,8 @@ public void testGeneratePing() throws Exception { TestUtils.ensureContainsFile(files, output, "DependencyInjection/Compiler/OpenAPIServerApiPass.php"); TestUtils.ensureContainsFile(files, output, "DependencyInjection/OpenAPIServerExtension.php"); TestUtils.ensureContainsFile(files, output, "OpenAPIServerBundle.php"); - TestUtils.ensureContainsFile(files, output, "Resources/config/routing.yml"); - TestUtils.ensureContainsFile(files, output, "Resources/config/services.yml"); + TestUtils.ensureContainsFile(files, output, "Resources/config/routing.yaml"); + TestUtils.ensureContainsFile(files, output, "Resources/config/services.yaml"); TestUtils.ensureContainsFile(files, output, "Resources/docs/Api/DefaultApiInterface.md"); TestUtils.ensureContainsFile(files, output, "Service/JmsSerializer.php"); TestUtils.ensureContainsFile(files, output, "Service/SerializerInterface.php"); From 7a20ba9b1d84dd71b473baf0c9d136d32f36c021 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 14:46:48 +0200 Subject: [PATCH 12/18] add test for setting a different source directory --- .../languages/PhpSymfonyServerCodegen.java | 2 +- .../php/PhpSymfonyServerCodegenTest.java | 65 ++++++++++++++++--- 2 files changed, 58 insertions(+), 9 deletions(-) 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 02bc6f6de34b..09e2259bf057 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 @@ -359,7 +359,7 @@ public void processOpts() { supportingFiles.add(new SupportingFile("testing/phpunit.xml.mustache", "", "phpunit.xml.dist")); supportingFiles.add(new SupportingFile("testing/AppKernel.mustache", toSrcPath(testsPackage, srcBasePath), "AppKernel.php")); supportingFiles.add(new SupportingFile("testing/ControllerTest.mustache", toSrcPath(controllerTestsPackage, srcBasePath), "ControllerTest.php")); - supportingFiles.add(new SupportingFile("testing/test_config.yml", toSrcPath(testsPackage, srcBasePath), "test_config.yml")); + supportingFiles.add(new SupportingFile("testing/test_config.yml", toSrcPath(testsPackage, srcBasePath), "test_config.yaml")); supportingFiles.add(new SupportingFile("routing.mustache", configDir, "routing.yaml")); supportingFiles.add(new SupportingFile("services.mustache", configDir, "services.yaml")); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index aa8ed3a78d94..9c99cfaa1d68 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -67,13 +67,11 @@ public void testAdditionalPropertiesPutForConfigValues() throws Exception { @Test public void testGeneratePing() throws Exception { Map properties = new HashMap<>(); - //properties.put(CodegenConstants.API_PACKAGE, "xyz.abcdef.api"); File output = Files.createTempDirectory("test").toFile(); final CodegenConfigurator configurator = new CodegenConfigurator() .setGeneratorName("php-symfony") - //.setLibrary(JavaClientCodegen.OKHTTP_GSON) .setAdditionalProperties(properties) .setInputSpec("src/test/resources/3_0/ping.yaml") .setOutputDir(output.getAbsolutePath().replace("\\", "/")); @@ -82,11 +80,7 @@ public void testGeneratePing() throws Exception { DefaultGenerator generator = new DefaultGenerator(); List files = generator.opts(clientOptInput).generate(); - for (File file : files) { - System.out.println("Filepath: " + file.getAbsolutePath()); - } - - //Assert.assertEquals(files.size(), 33); + Assert.assertEquals(files.size(), 33); TestUtils.ensureContainsFile(files, output, ".coveralls.yml"); TestUtils.ensureContainsFile(files, output, ".gitignore"); TestUtils.ensureContainsFile(files, output, ".openapi-generator-ignore"); @@ -119,7 +113,62 @@ public void testGeneratePing() throws Exception { TestUtils.ensureContainsFile(files, output, "Tests/Api/DefaultApiInterfaceTest.php"); TestUtils.ensureContainsFile(files, output, "Tests/AppKernel.php"); TestUtils.ensureContainsFile(files, output, "Tests/Controller/ControllerTest.php"); - TestUtils.ensureContainsFile(files, output, "Tests/test_config.yml"); + TestUtils.ensureContainsFile(files, output, "Tests/test_config.yaml"); + + output.deleteOnExit(); + } + + @Test + public void testGeneratePingWithDifferentSourceDirectory() throws Exception { + Map properties = new HashMap<>(); + properties.put(CodegenConstants.SRC_BASE_PATH, "src"); + + File output = Files.createTempDirectory("test").toFile(); + + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName("php-symfony") + .setAdditionalProperties(properties) + .setInputSpec("src/test/resources/3_0/ping.yaml") + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + + final ClientOptInput clientOptInput = configurator.toClientOptInput(); + DefaultGenerator generator = new DefaultGenerator(); + List files = generator.opts(clientOptInput).generate(); + + Assert.assertEquals(files.size(), 33); + TestUtils.ensureContainsFile(files, output, ".coveralls.yml"); + TestUtils.ensureContainsFile(files, output, ".gitignore"); + TestUtils.ensureContainsFile(files, output, ".openapi-generator-ignore"); + TestUtils.ensureContainsFile(files, output, ".openapi-generator/FILES"); + TestUtils.ensureContainsFile(files, output, ".openapi-generator/VERSION"); + TestUtils.ensureContainsFile(files, output, ".php_cs.dist"); + TestUtils.ensureContainsFile(files, output, ".travis.yml"); + TestUtils.ensureContainsFile(files, output, "autoload.php"); + TestUtils.ensureContainsFile(files, output, "composer.json"); + TestUtils.ensureContainsFile(files, output, "git_push.sh"); + TestUtils.ensureContainsFile(files, output, "phpunit.xml.dist"); + TestUtils.ensureContainsFile(files, output, "README.md"); + TestUtils.ensureContainsFile(files, output, "src/Api/ApiServer.php"); + TestUtils.ensureContainsFile(files, output, "src/Api/DefaultApiInterface.php"); + TestUtils.ensureContainsFile(files, output, "src/Controller/Controller.php"); + TestUtils.ensureContainsFile(files, output, "src/Controller/DefaultController.php"); + TestUtils.ensureContainsFile(files, output, "src/DependencyInjection/Compiler/OpenAPIServerApiPass.php"); + TestUtils.ensureContainsFile(files, output, "src/DependencyInjection/OpenAPIServerExtension.php"); + TestUtils.ensureContainsFile(files, output, "src/OpenAPIServerBundle.php"); + TestUtils.ensureContainsFile(files, output, "src/Resources/config/routing.yaml"); + TestUtils.ensureContainsFile(files, output, "src/Resources/config/services.yaml"); + TestUtils.ensureContainsFile(files, output, "src/Resources/docs/Api/DefaultApiInterface.md"); + TestUtils.ensureContainsFile(files, output, "src/Service/JmsSerializer.php"); + TestUtils.ensureContainsFile(files, output, "src/Service/SerializerInterface.php"); + TestUtils.ensureContainsFile(files, output, "src/Service/StrictJsonDeserializationVisitor.php"); + TestUtils.ensureContainsFile(files, output, "src/Service/StrictJsonDeserializationVisitorFactory.php"); + TestUtils.ensureContainsFile(files, output, "src/Service/SymfonyValidator.php"); + TestUtils.ensureContainsFile(files, output, "src/Service/TypeMismatchException.php"); + TestUtils.ensureContainsFile(files, output, "src/Service/ValidatorInterface.php"); + TestUtils.ensureContainsFile(files, output, "src/Tests/Api/DefaultApiInterfaceTest.php"); + TestUtils.ensureContainsFile(files, output, "src/Tests/AppKernel.php"); + TestUtils.ensureContainsFile(files, output, "src/Tests/Controller/ControllerTest.php"); + TestUtils.ensureContainsFile(files, output, "src/Tests/test_config.yaml"); output.deleteOnExit(); } From 4635e425cc8f4af1006c84e51eca709f2f8fe666 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 14:55:49 +0200 Subject: [PATCH 13/18] use correct const for setting source dir property in tests --- .../openapitools/codegen/php/PhpSymfonyServerCodegenTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index 9c99cfaa1d68..f9d3c98ab2ac 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -121,7 +121,7 @@ public void testGeneratePing() throws Exception { @Test public void testGeneratePingWithDifferentSourceDirectory() throws Exception { Map properties = new HashMap<>(); - properties.put(CodegenConstants.SRC_BASE_PATH, "src"); + properties.put(AbstractPhpCodegen.SRC_BASE_PATH, "src"); File output = Files.createTempDirectory("test").toFile(); From ae16ecd31fc3479e52dcee01eaee2ec839055a75 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 15:04:11 +0200 Subject: [PATCH 14/18] import the AbstractPhpCodegen in test class --- .../openapitools/codegen/php/PhpSymfonyServerCodegenTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index f9d3c98ab2ac..39bd1495a5c5 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -28,6 +28,7 @@ import org.openapitools.codegen.DefaultGenerator; import org.openapitools.codegen.TestUtils; import org.openapitools.codegen.config.CodegenConfigurator; +import org.openapitools.codegen.languages.AbstractPhpCodegen; import org.openapitools.codegen.languages.PhpSymfonyServerCodegen; import org.testng.Assert; import org.testng.annotations.Test; From 652be466485c6ff1d4cf7f709361cfbbf5cdb324 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 15:27:06 +0200 Subject: [PATCH 15/18] put also Resources to source path --- .../codegen/languages/PhpSymfonyServerCodegen.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 09e2259bf057..3da2b7ce21f7 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 @@ -361,8 +361,8 @@ public void processOpts() { supportingFiles.add(new SupportingFile("testing/ControllerTest.mustache", toSrcPath(controllerTestsPackage, srcBasePath), "ControllerTest.php")); supportingFiles.add(new SupportingFile("testing/test_config.yml", toSrcPath(testsPackage, srcBasePath), "test_config.yaml")); - supportingFiles.add(new SupportingFile("routing.mustache", configDir, "routing.yaml")); - supportingFiles.add(new SupportingFile("services.mustache", configDir, "services.yaml")); + supportingFiles.add(new SupportingFile("routing.mustache", toSrcPath(configDir, srcBasePath), "routing.yaml")); + supportingFiles.add(new SupportingFile("services.mustache", toSrcPath(configDir, srcBasePath), "services.yaml")); supportingFiles.add(new SupportingFile("composer.mustache", "", "composer.json")); supportingFiles.add(new SupportingFile("autoload.mustache", "", "autoload.php")); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); From 1f9908face8b841e76f82b77a488c02182310f07 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Tue, 26 Jul 2022 15:47:30 +0200 Subject: [PATCH 16/18] save docs not to Resources --- .../codegen/languages/PhpSymfonyServerCodegen.java | 2 +- .../openapitools/codegen/php/PhpSymfonyServerCodegenTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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 3da2b7ce21f7..e1b47fcf6b84 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 @@ -111,7 +111,7 @@ public PhpSymfonyServerCodegen() { setBundleName("OpenAPIServer"); setBundleAlias("open_api_server"); modelDirName = "Model"; - docsBasePath = "Resources" + "/" + "docs"; + docsBasePath = "docs"; apiDocPath = docsBasePath + "/" + apiDirName; modelDocPath = docsBasePath + "/" + modelDirName; outputFolder = "generated-code" + File.separator + "php"; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java index 39bd1495a5c5..b5144ff7627f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpSymfonyServerCodegenTest.java @@ -100,10 +100,10 @@ public void testGeneratePing() throws Exception { TestUtils.ensureContainsFile(files, output, "Controller/DefaultController.php"); TestUtils.ensureContainsFile(files, output, "DependencyInjection/Compiler/OpenAPIServerApiPass.php"); TestUtils.ensureContainsFile(files, output, "DependencyInjection/OpenAPIServerExtension.php"); + TestUtils.ensureContainsFile(files, output, "docs/Api/DefaultApiInterface.md"); TestUtils.ensureContainsFile(files, output, "OpenAPIServerBundle.php"); TestUtils.ensureContainsFile(files, output, "Resources/config/routing.yaml"); TestUtils.ensureContainsFile(files, output, "Resources/config/services.yaml"); - TestUtils.ensureContainsFile(files, output, "Resources/docs/Api/DefaultApiInterface.md"); TestUtils.ensureContainsFile(files, output, "Service/JmsSerializer.php"); TestUtils.ensureContainsFile(files, output, "Service/SerializerInterface.php"); TestUtils.ensureContainsFile(files, output, "Service/StrictJsonDeserializationVisitor.php"); @@ -149,6 +149,7 @@ public void testGeneratePingWithDifferentSourceDirectory() throws Exception { TestUtils.ensureContainsFile(files, output, "git_push.sh"); TestUtils.ensureContainsFile(files, output, "phpunit.xml.dist"); TestUtils.ensureContainsFile(files, output, "README.md"); + TestUtils.ensureContainsFile(files, output, "docs/Api/DefaultApiInterface.md"); TestUtils.ensureContainsFile(files, output, "src/Api/ApiServer.php"); TestUtils.ensureContainsFile(files, output, "src/Api/DefaultApiInterface.php"); TestUtils.ensureContainsFile(files, output, "src/Controller/Controller.php"); @@ -158,7 +159,6 @@ public void testGeneratePingWithDifferentSourceDirectory() throws Exception { TestUtils.ensureContainsFile(files, output, "src/OpenAPIServerBundle.php"); TestUtils.ensureContainsFile(files, output, "src/Resources/config/routing.yaml"); TestUtils.ensureContainsFile(files, output, "src/Resources/config/services.yaml"); - TestUtils.ensureContainsFile(files, output, "src/Resources/docs/Api/DefaultApiInterface.md"); TestUtils.ensureContainsFile(files, output, "src/Service/JmsSerializer.php"); TestUtils.ensureContainsFile(files, output, "src/Service/SerializerInterface.php"); TestUtils.ensureContainsFile(files, output, "src/Service/StrictJsonDeserializationVisitor.php"); From b919383799db8466b3a1fb97ce45a5c95fe36ac8 Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Wed, 10 Aug 2022 10:59:07 +0200 Subject: [PATCH 17/18] update samples and improve src path in autoload.php and composer.json --- .../languages/PhpSymfonyServerCodegen.java | 3 + .../resources/php-symfony/autoload.mustache | 4 +- .../resources/php-symfony/composer.mustache | 2 +- .../php-symfony/SymfonyBundle-php/.gitignore | 2 +- .../.openapi-generator/FILES | 24 ++++---- .../OpenAPIServerExtension.php | 2 +- .../php-symfony/SymfonyBundle-php/README.md | 56 +++++++++---------- .../SymfonyBundle-php/Tests/AppKernel.php | 2 +- .../SymfonyBundle-php/autoload.php | 4 +- .../SymfonyBundle-php/composer.json | 2 +- .../SymfonyBundle-php/phpunit.xml.dist | 6 +- 11 files changed, 55 insertions(+), 52 deletions(-) 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 e1b47fcf6b84..5ed81e0c215c 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 @@ -317,6 +317,9 @@ public void processOpts() { additionalProperties.put("bundleExtensionName", bundleExtensionName); additionalProperties.put("bundleAlias", bundleAlias); + // add trailing slash for mustache templates + additionalProperties.put("relativeSrcBasePath", srcBasePath.isEmpty() ? "" : srcBasePath + "/"); + // make api and model src path available in mustache template additionalProperties.put("apiSrcPath", "." + "/" + toSrcPath(apiPackage, srcBasePath)); additionalProperties.put("modelSrcPath", "." + "/" + toSrcPath(modelPackage, srcBasePath)); diff --git a/modules/openapi-generator/src/main/resources/php-symfony/autoload.mustache b/modules/openapi-generator/src/main/resources/php-symfony/autoload.mustache index 28ce32ae50a5..0171bf4bd7f4 100644 --- a/modules/openapi-generator/src/main/resources/php-symfony/autoload.mustache +++ b/modules/openapi-generator/src/main/resources/php-symfony/autoload.mustache @@ -6,7 +6,7 @@ * * After registering this autoload function with SPL, the following line * would cause the function to attempt to load the \{{invokerPackage}}\Baz\Qux class - * from /path/to/project/{{srcBasePath}}/Baz/Qux.php: + * from /path/to/project/{{relativeSrcBasePath}}Baz/Qux.php: * * new \{{invokerPackage}}\Baz\Qux; * @@ -20,7 +20,7 @@ spl_autoload_register(function ($class) { $prefix = '{{escapedInvokerPackage}}\\'; // base directory for the namespace prefix - $base_dir = __DIR__ . '/{{srcBasePath}}/'; + $base_dir = __DIR__ . '/{{relativeSrcBasePath}}'; // does the class use the namespace prefix? $len = strlen($prefix); diff --git a/modules/openapi-generator/src/main/resources/php-symfony/composer.mustache b/modules/openapi-generator/src/main/resources/php-symfony/composer.mustache index b337e44bb824..e4ecd72994dd 100644 --- a/modules/openapi-generator/src/main/resources/php-symfony/composer.mustache +++ b/modules/openapi-generator/src/main/resources/php-symfony/composer.mustache @@ -36,7 +36,7 @@ }, "autoload": { "psr-4": { - "{{escapedInvokerPackage}}\\" : "{{srcBasePath}}/" + "{{escapedInvokerPackage}}\\" : "{{relativeSrcBasePath}}" } } } diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/.gitignore b/samples/server/petstore/php-symfony/SymfonyBundle-php/.gitignore index 3f90ef253e25..6070e9bfda9d 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/.gitignore +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/.gitignore @@ -18,7 +18,7 @@ !var/sessions/.gitkeep # Parameters -/app/config/parameters.yml +/app/config/parameters.yaml /app/config/parameters.ini # Managed by Composer diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/FILES b/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/FILES index 6c8bb72be2c9..e1b272ff1e12 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/FILES +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/.openapi-generator/FILES @@ -20,17 +20,8 @@ Model/Tag.php Model/User.php OpenAPIServerBundle.php README.md -Resources/config/routing.yml -Resources/config/services.yml -Resources/docs/Api/PetApiInterface.md -Resources/docs/Api/StoreApiInterface.md -Resources/docs/Api/UserApiInterface.md -Resources/docs/Model/ApiResponse.md -Resources/docs/Model/Category.md -Resources/docs/Model/Order.md -Resources/docs/Model/Pet.md -Resources/docs/Model/Tag.md -Resources/docs/Model/User.md +Resources/config/routing.yaml +Resources/config/services.yaml Service/JmsSerializer.php Service/SerializerInterface.php Service/StrictJsonDeserializationVisitor.php @@ -40,8 +31,17 @@ Service/TypeMismatchException.php Service/ValidatorInterface.php Tests/AppKernel.php Tests/Controller/ControllerTest.php -Tests/test_config.yml +Tests/test_config.yaml autoload.php composer.json +docs/Api/PetApiInterface.md +docs/Api/StoreApiInterface.md +docs/Api/UserApiInterface.md +docs/Model/ApiResponse.md +docs/Model/Category.md +docs/Model/Order.md +docs/Model/Pet.md +docs/Model/Tag.md +docs/Model/User.md git_push.sh phpunit.xml.dist 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 02bd9b82fc89..f964670958c4 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/OpenAPIServerExtension.php +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/DependencyInjection/OpenAPIServerExtension.php @@ -47,7 +47,7 @@ class OpenAPIServerExtension extends Extension public function load(array $configs, ContainerBuilder $container): void { $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); - $loader->load('services.yml'); + $loader->load('services.yaml'); } public function getAlias(): string diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/README.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/README.md index c89ec4ed4fd7..08ffab232642 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/README.md +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/README.md @@ -60,7 +60,7 @@ Step 3: Register the routes: ```yaml # app/config/routes.yaml open_api_server: - resource: "@OpenAPIServerBundle/Resources/config/routing.yml" + resource: "@OpenAPIServerBundle/Resources/config/routing.yaml" ``` Step 4: Implement the API calls: @@ -99,7 +99,7 @@ class PetApi implements PetApiInterface // An interface is autogenerated Step 5: Tag your API implementation: ```yaml -# config/services.yml +# config/services.yaml services: # ... Acme\MyBundle\Api\PetApi: @@ -117,36 +117,36 @@ All URIs are relative to *http://petstore.swagger.io/v2* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- -*PetApiInterface* | [**addPet**](Resources/docs/Api/PetApiInterface.md#addpet) | **POST** /pet | Add a new pet to the store -*PetApiInterface* | [**deletePet**](Resources/docs/Api/PetApiInterface.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet -*PetApiInterface* | [**findPetsByStatus**](Resources/docs/Api/PetApiInterface.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status -*PetApiInterface* | [**findPetsByTags**](Resources/docs/Api/PetApiInterface.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags -*PetApiInterface* | [**getPetById**](Resources/docs/Api/PetApiInterface.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID -*PetApiInterface* | [**updatePet**](Resources/docs/Api/PetApiInterface.md#updatepet) | **PUT** /pet | Update an existing pet -*PetApiInterface* | [**updatePetWithForm**](Resources/docs/Api/PetApiInterface.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data -*PetApiInterface* | [**uploadFile**](Resources/docs/Api/PetApiInterface.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image -*StoreApiInterface* | [**deleteOrder**](Resources/docs/Api/StoreApiInterface.md#deleteorder) | **DELETE** /store/order/{orderId} | Delete purchase order by ID -*StoreApiInterface* | [**getInventory**](Resources/docs/Api/StoreApiInterface.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status -*StoreApiInterface* | [**getOrderById**](Resources/docs/Api/StoreApiInterface.md#getorderbyid) | **GET** /store/order/{orderId} | Find purchase order by ID -*StoreApiInterface* | [**placeOrder**](Resources/docs/Api/StoreApiInterface.md#placeorder) | **POST** /store/order | Place an order for a pet -*UserApiInterface* | [**createUser**](Resources/docs/Api/UserApiInterface.md#createuser) | **POST** /user | Create user -*UserApiInterface* | [**createUsersWithArrayInput**](Resources/docs/Api/UserApiInterface.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array -*UserApiInterface* | [**createUsersWithListInput**](Resources/docs/Api/UserApiInterface.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array -*UserApiInterface* | [**deleteUser**](Resources/docs/Api/UserApiInterface.md#deleteuser) | **DELETE** /user/{username} | Delete user -*UserApiInterface* | [**getUserByName**](Resources/docs/Api/UserApiInterface.md#getuserbyname) | **GET** /user/{username} | Get user by user name -*UserApiInterface* | [**loginUser**](Resources/docs/Api/UserApiInterface.md#loginuser) | **GET** /user/login | Logs user into the system -*UserApiInterface* | [**logoutUser**](Resources/docs/Api/UserApiInterface.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session -*UserApiInterface* | [**updateUser**](Resources/docs/Api/UserApiInterface.md#updateuser) | **PUT** /user/{username} | Updated user +*PetApiInterface* | [**addPet**](docs/Api/PetApiInterface.md#addpet) | **POST** /pet | Add a new pet to the store +*PetApiInterface* | [**deletePet**](docs/Api/PetApiInterface.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet +*PetApiInterface* | [**findPetsByStatus**](docs/Api/PetApiInterface.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status +*PetApiInterface* | [**findPetsByTags**](docs/Api/PetApiInterface.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags +*PetApiInterface* | [**getPetById**](docs/Api/PetApiInterface.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID +*PetApiInterface* | [**updatePet**](docs/Api/PetApiInterface.md#updatepet) | **PUT** /pet | Update an existing pet +*PetApiInterface* | [**updatePetWithForm**](docs/Api/PetApiInterface.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data +*PetApiInterface* | [**uploadFile**](docs/Api/PetApiInterface.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image +*StoreApiInterface* | [**deleteOrder**](docs/Api/StoreApiInterface.md#deleteorder) | **DELETE** /store/order/{orderId} | Delete purchase order by ID +*StoreApiInterface* | [**getInventory**](docs/Api/StoreApiInterface.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status +*StoreApiInterface* | [**getOrderById**](docs/Api/StoreApiInterface.md#getorderbyid) | **GET** /store/order/{orderId} | Find purchase order by ID +*StoreApiInterface* | [**placeOrder**](docs/Api/StoreApiInterface.md#placeorder) | **POST** /store/order | Place an order for a pet +*UserApiInterface* | [**createUser**](docs/Api/UserApiInterface.md#createuser) | **POST** /user | Create user +*UserApiInterface* | [**createUsersWithArrayInput**](docs/Api/UserApiInterface.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array +*UserApiInterface* | [**createUsersWithListInput**](docs/Api/UserApiInterface.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array +*UserApiInterface* | [**deleteUser**](docs/Api/UserApiInterface.md#deleteuser) | **DELETE** /user/{username} | Delete user +*UserApiInterface* | [**getUserByName**](docs/Api/UserApiInterface.md#getuserbyname) | **GET** /user/{username} | Get user by user name +*UserApiInterface* | [**loginUser**](docs/Api/UserApiInterface.md#loginuser) | **GET** /user/login | Logs user into the system +*UserApiInterface* | [**logoutUser**](docs/Api/UserApiInterface.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session +*UserApiInterface* | [**updateUser**](docs/Api/UserApiInterface.md#updateuser) | **PUT** /user/{username} | Updated user ## Documentation For Models - - [ApiResponse](Resources/docs/Model/ApiResponse.md) - - [Category](Resources/docs/Model/Category.md) - - [Order](Resources/docs/Model/Order.md) - - [Pet](Resources/docs/Model/Pet.md) - - [Tag](Resources/docs/Model/Tag.md) - - [User](Resources/docs/Model/User.md) + - [ApiResponse](docs/Model/ApiResponse.md) + - [Category](docs/Model/Category.md) + - [Order](docs/Model/Order.md) + - [Pet](docs/Model/Pet.md) + - [Tag](docs/Model/Tag.md) + - [User](docs/Model/User.md) ## Documentation For Authorization diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/AppKernel.php b/samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/AppKernel.php index 608b63fdc091..2ce8342f343f 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/AppKernel.php +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/AppKernel.php @@ -24,6 +24,6 @@ public function registerBundles(): iterable */ public function registerContainerConfiguration(LoaderInterface $loader) { - $loader->load(__DIR__.'/test_config.yml'); + $loader->load(__DIR__.'/test_config.yaml'); } } diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/autoload.php b/samples/server/petstore/php-symfony/SymfonyBundle-php/autoload.php index b3f278620a2b..9a070af61072 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/autoload.php +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/autoload.php @@ -16,7 +16,7 @@ * * After registering this autoload function with SPL, the following line * would cause the function to attempt to load the \OpenAPI\Server\Baz\Qux class - * from /path/to/project/./Baz/Qux.php: + * from /path/to/project/Baz/Qux.php: * * new \OpenAPI\Server\Baz\Qux; * @@ -30,7 +30,7 @@ $prefix = 'OpenAPI\\Server\\'; // base directory for the namespace prefix - $base_dir = __DIR__ . '/./'; + $base_dir = __DIR__ . '/'; // does the class use the namespace prefix? $len = strlen($prefix); diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/composer.json b/samples/server/petstore/php-symfony/SymfonyBundle-php/composer.json index 7683bf2cc886..3641be843304 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/composer.json +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/composer.json @@ -33,7 +33,7 @@ }, "autoload": { "psr-4": { - "OpenAPI\\Server\\" : "./" + "OpenAPI\\Server\\" : "" } } } diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/phpunit.xml.dist b/samples/server/petstore/php-symfony/SymfonyBundle-php/phpunit.xml.dist index a12d3c3c8708..01645d7450c6 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/phpunit.xml.dist +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/phpunit.xml.dist @@ -9,9 +9,9 @@ xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"> - ././Api - ././Model - ././Controller + ./Api + ./Model + ./Controller From f1e80d883e288418e7d822b1d92bfc9ddec7815c Mon Sep 17 00:00:00 2001 From: Luka Dschaak Date: Wed, 10 Aug 2022 12:11:15 +0200 Subject: [PATCH 18/18] update moved samples --- .../Resources/config/{routing.yml => routing.yaml} | 0 .../Resources/config/{services.yml => services.yaml} | 0 .../Tests/{test_config.yml => test_config.yaml} | 4 ++-- .../{Resources => }/docs/Api/PetApiInterface.md | 2 +- .../{Resources => }/docs/Api/StoreApiInterface.md | 2 +- .../{Resources => }/docs/Api/UserApiInterface.md | 2 +- .../{Resources => }/docs/Model/ApiResponse.md | 0 .../SymfonyBundle-php/{Resources => }/docs/Model/Category.md | 0 .../SymfonyBundle-php/{Resources => }/docs/Model/Order.md | 0 .../SymfonyBundle-php/{Resources => }/docs/Model/Pet.md | 0 .../SymfonyBundle-php/{Resources => }/docs/Model/Tag.md | 0 .../SymfonyBundle-php/{Resources => }/docs/Model/User.md | 0 12 files changed, 5 insertions(+), 5 deletions(-) rename samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/{routing.yml => routing.yaml} (100%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/{services.yml => services.yaml} (100%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/{test_config.yml => test_config.yaml} (68%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/{Resources => }/docs/Api/PetApiInterface.md (99%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/{Resources => }/docs/Api/StoreApiInterface.md (99%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/{Resources => }/docs/Api/UserApiInterface.md (99%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/{Resources => }/docs/Model/ApiResponse.md (100%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/{Resources => }/docs/Model/Category.md (100%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/{Resources => }/docs/Model/Order.md (100%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/{Resources => }/docs/Model/Pet.md (100%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/{Resources => }/docs/Model/Tag.md (100%) rename samples/server/petstore/php-symfony/SymfonyBundle-php/{Resources => }/docs/Model/User.md (100%) 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.yaml similarity index 100% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/routing.yml rename to samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/routing.yaml 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.yaml similarity index 100% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/services.yml rename to samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/config/services.yaml diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/test_config.yml b/samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/test_config.yaml similarity index 68% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/test_config.yml rename to samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/test_config.yaml index 4c7970ab71ad..9cd9521cbcfe 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/test_config.yml +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/Tests/test_config.yaml @@ -1,8 +1,8 @@ imports: - - { resource: "../Resources/config/services.yml" } + - { resource: "../Resources/config/services.yaml" } framework: secret: "testsecret" test: ~ router: - resource: "%kernel.project_dir%/Resources/config/routing.yml" + resource: "%kernel.project_dir%/Resources/config/routing.yaml" diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/PetApiInterface.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Api/PetApiInterface.md similarity index 99% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/PetApiInterface.md rename to samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Api/PetApiInterface.md index 7b690ea767b1..6912d640301e 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/PetApiInterface.md +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Api/PetApiInterface.md @@ -16,7 +16,7 @@ Method | HTTP request | Description ## Service Declaration ```yaml -# config/services.yml +# config/services.yaml services: # ... Acme\MyBundle\Api\PetApi: diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/StoreApiInterface.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Api/StoreApiInterface.md similarity index 99% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/StoreApiInterface.md rename to samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Api/StoreApiInterface.md index f7c5893d0d06..c9aedf55e38d 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/StoreApiInterface.md +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Api/StoreApiInterface.md @@ -12,7 +12,7 @@ Method | HTTP request | Description ## Service Declaration ```yaml -# config/services.yml +# config/services.yaml services: # ... Acme\MyBundle\Api\StoreApi: diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/UserApiInterface.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Api/UserApiInterface.md similarity index 99% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/UserApiInterface.md rename to samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Api/UserApiInterface.md index 24eb29aa6bb9..2c7e3ba26260 100644 --- a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Api/UserApiInterface.md +++ b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Api/UserApiInterface.md @@ -16,7 +16,7 @@ Method | HTTP request | Description ## Service Declaration ```yaml -# config/services.yml +# config/services.yaml services: # ... Acme\MyBundle\Api\UserApi: diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/ApiResponse.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/ApiResponse.md similarity index 100% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/ApiResponse.md rename to samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/ApiResponse.md diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/Category.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/Category.md similarity index 100% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/Category.md rename to samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/Category.md diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/Order.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/Order.md similarity index 100% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/Order.md rename to samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/Order.md diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/Pet.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/Pet.md similarity index 100% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/Pet.md rename to samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/Pet.md diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/Tag.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/Tag.md similarity index 100% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/Tag.md rename to samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/Tag.md diff --git a/samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/User.md b/samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/User.md similarity index 100% rename from samples/server/petstore/php-symfony/SymfonyBundle-php/Resources/docs/Model/User.md rename to samples/server/petstore/php-symfony/SymfonyBundle-php/docs/Model/User.md