diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlim4ServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlim4ServerCodegen.java index 088334c55da..7e318dee204 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlim4ServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlim4ServerCodegen.java @@ -158,6 +158,10 @@ public class PhpSlim4ServerCodegen extends AbstractPhpCodegen { public void processOpts() { super.processOpts(); + Boolean generateModels = additionalProperties.containsKey(CodegenConstants.GENERATE_MODELS) && Boolean.TRUE.equals(additionalProperties.get(CodegenConstants.GENERATE_MODELS)); + Boolean generateApiTests = additionalProperties.containsKey(CodegenConstants.GENERATE_API_TESTS) && Boolean.TRUE.equals(additionalProperties.get(CodegenConstants.GENERATE_API_TESTS)); + Boolean generateModelTests = additionalProperties.containsKey(CodegenConstants.GENERATE_MODEL_TESTS) && Boolean.TRUE.equals(additionalProperties.get(CodegenConstants.GENERATE_MODEL_TESTS)); + if (additionalProperties.containsKey(CodegenConstants.INVOKER_PACKAGE)) { // Update the invokerPackage for the default authPackage authPackage = invokerPackage + "\\" + authDirName; @@ -210,14 +214,26 @@ public class PhpSlim4ServerCodegen extends AbstractPhpCodegen { supportingFiles.add(new SupportingFile("index.mustache", "public", "index.php")); supportingFiles.add(new SupportingFile(".htaccess", "public", ".htaccess")); supportingFiles.add(new SupportingFile("SlimRouter.mustache", toSrcPath(invokerPackage, srcBasePath), "SlimRouter.php")); - supportingFiles.add(new SupportingFile("phpunit.xml.mustache", "", "phpunit.xml.dist")); + + // don't generate phpunit config when tests generation disabled + if (Boolean.TRUE.equals(generateApiTests) || Boolean.TRUE.equals(generateModelTests)) { + supportingFiles.add(new SupportingFile("phpunit.xml.mustache", "", "phpunit.xml.dist")); + additionalProperties.put("generateTests", Boolean.TRUE); + } + supportingFiles.add(new SupportingFile("phpcs.xml.mustache", "", "phpcs.xml.dist")); supportingFiles.add(new SupportingFile("htaccess_deny_all", "config", ".htaccess")); supportingFiles.add(new SupportingFile("config_example.mustache", "config" + File.separator + "dev", "example.inc.php")); supportingFiles.add(new SupportingFile("config_example.mustache", "config" + File.separator + "prod", "example.inc.php")); - supportingFiles.add(new SupportingFile("base_model.mustache", toSrcPath(invokerPackage, srcBasePath), "BaseModel.php")); - supportingFiles.add(new SupportingFile("base_model_test.mustache", toSrcPath(invokerPackage, testBasePath), "BaseModelTest.php")); + + if (Boolean.TRUE.equals(generateModels)) { + supportingFiles.add(new SupportingFile("base_model.mustache", toSrcPath(invokerPackage, srcBasePath), "BaseModel.php")); + } + + if (Boolean.TRUE.equals(generateModelTests)) { + supportingFiles.add(new SupportingFile("base_model_test.mustache", toSrcPath(invokerPackage, testBasePath), "BaseModelTest.php")); + } } @Override diff --git a/modules/openapi-generator/src/main/resources/php-slim4-server/README.mustache b/modules/openapi-generator/src/main/resources/php-slim4-server/README.mustache index 9435bf7f24a..d85b12e3bd4 100644 --- a/modules/openapi-generator/src/main/resources/php-slim4-server/README.mustache +++ b/modules/openapi-generator/src/main/resources/php-slim4-server/README.mustache @@ -46,6 +46,7 @@ $ php -S localhost:8888 -t php-slim-server/public > It may also be useful for testing purposes or for application demonstrations that are run in controlled environments. > It is not intended to be a full-featured web server. It should not be used on a public network. +{{#generateTests}} ## Tests ### PHPUnit @@ -59,9 +60,14 @@ How to write tests read at [2. Writing Tests for PHPUnit - PHPUnit 8.5 Manual](h Command | Target ---- | ---- `$ composer test` | All tests +{{#generateApiTests}} `$ composer test-apis` | Apis tests +{{/generateApiTests}} +{{#generateModelTests}} `$ composer test-models` | Models tests +{{/generateModelTests}} +{{/generateTests}} #### Config Package contains fully functional config `./phpunit.xml.dist` file. Create `./phpunit.xml` in root folder to override it. diff --git a/modules/openapi-generator/src/main/resources/php-slim4-server/composer.mustache b/modules/openapi-generator/src/main/resources/php-slim4-server/composer.mustache index 803a0c140cd..e514b055f54 100644 --- a/modules/openapi-generator/src/main/resources/php-slim4-server/composer.mustache +++ b/modules/openapi-generator/src/main/resources/php-slim4-server/composer.mustache @@ -29,7 +29,9 @@ {{/isZendDiactoros}} }, "require-dev": { + {{#generateTests}} "phpunit/phpunit": "^8.0 || ^9.0", + {{/generateTests}} "overtrue/phplint": "^2.0.2", "squizlabs/php_codesniffer": "^3.5" }, @@ -43,11 +45,17 @@ "psr-4": { "{{escapedInvokerPackage}}\\": "{{testBasePath}}/" } }, "scripts": { + {{#generateTests}} "test": [ "phpunit" ], + {{#generateApiTests}} "test-apis": "phpunit --testsuite Apis", + {{/generateApiTests}} + {{#generateModelTests}} "test-models": "phpunit --testsuite Models", + {{/generateModelTests}} + {{/generateTests}} "phpcs": "phpcs", "phplint": "phplint ./ --exclude=vendor" } diff --git a/modules/openapi-generator/src/main/resources/php-slim4-server/phpunit.xml.mustache b/modules/openapi-generator/src/main/resources/php-slim4-server/phpunit.xml.mustache index 026da14ad2e..ce868087865 100644 --- a/modules/openapi-generator/src/main/resources/php-slim4-server/phpunit.xml.mustache +++ b/modules/openapi-generator/src/main/resources/php-slim4-server/phpunit.xml.mustache @@ -8,13 +8,17 @@ + {{#generateApiTests}} {{apiTestPath}} + {{/generateApiTests}} + {{#generateModelTests}} ./{{testBasePath}}/BaseModelTest.php {{modelTestPath}} + {{/generateModelTests}} diff --git a/samples/server/petstore/php-slim4/lib/Middleware/JsonBodyParserMiddleware.php b/samples/server/petstore/php-slim4/lib/Middleware/JsonBodyParserMiddleware.php deleted file mode 100644 index b1199ffd84a..00000000000 --- a/samples/server/petstore/php-slim4/lib/Middleware/JsonBodyParserMiddleware.php +++ /dev/null @@ -1,63 +0,0 @@ -getHeaderLine('Content-Type'); - - if (strstr($contentType, 'application/json')) { - $contents = json_decode(file_get_contents('php://input'), true); - if (json_last_error() === JSON_ERROR_NONE) { - $request = $request->withParsedBody($contents); - } - } - - return $handler->handle($request); - } -} diff --git a/samples/server/petstore/php-slim4/tests/Api/PetApiTest.php b/samples/server/petstore/php-slim4/tests/Api/PetApiTest.php index 2eaed45a504..57f84475b10 100644 --- a/samples/server/petstore/php-slim4/tests/Api/PetApiTest.php +++ b/samples/server/petstore/php-slim4/tests/Api/PetApiTest.php @@ -2,7 +2,7 @@ /** * OpenAPI Petstore - * PHP version 7.2 + * PHP version 7.4 * * @package OpenAPIServer * @author OpenAPI Generator team diff --git a/samples/server/petstore/php-slim4/tests/Api/StoreApiTest.php b/samples/server/petstore/php-slim4/tests/Api/StoreApiTest.php index b6d114045d8..6bbf53f33a4 100644 --- a/samples/server/petstore/php-slim4/tests/Api/StoreApiTest.php +++ b/samples/server/petstore/php-slim4/tests/Api/StoreApiTest.php @@ -2,7 +2,7 @@ /** * OpenAPI Petstore - * PHP version 7.2 + * PHP version 7.4 * * @package OpenAPIServer * @author OpenAPI Generator team diff --git a/samples/server/petstore/php-slim4/tests/Api/UserApiTest.php b/samples/server/petstore/php-slim4/tests/Api/UserApiTest.php index cee6da4398f..2b22f5a59f5 100644 --- a/samples/server/petstore/php-slim4/tests/Api/UserApiTest.php +++ b/samples/server/petstore/php-slim4/tests/Api/UserApiTest.php @@ -2,7 +2,7 @@ /** * OpenAPI Petstore - * PHP version 7.2 + * PHP version 7.4 * * @package OpenAPIServer * @author OpenAPI Generator team diff --git a/samples/server/petstore/php-slim4/tests/Model/ApiResponseTest.php b/samples/server/petstore/php-slim4/tests/Model/ApiResponseTest.php index 0190bd0490a..512c9d55aec 100644 --- a/samples/server/petstore/php-slim4/tests/Model/ApiResponseTest.php +++ b/samples/server/petstore/php-slim4/tests/Model/ApiResponseTest.php @@ -2,7 +2,7 @@ /** * OpenAPI Petstore - * PHP version 7.2 + * PHP version 7.4 * * @package OpenAPIServer * @author OpenAPI Generator team diff --git a/samples/server/petstore/php-slim4/tests/Model/CategoryTest.php b/samples/server/petstore/php-slim4/tests/Model/CategoryTest.php index e951b3673d3..c97b1ce8339 100644 --- a/samples/server/petstore/php-slim4/tests/Model/CategoryTest.php +++ b/samples/server/petstore/php-slim4/tests/Model/CategoryTest.php @@ -2,7 +2,7 @@ /** * OpenAPI Petstore - * PHP version 7.2 + * PHP version 7.4 * * @package OpenAPIServer * @author OpenAPI Generator team diff --git a/samples/server/petstore/php-slim4/tests/Model/OrderTest.php b/samples/server/petstore/php-slim4/tests/Model/OrderTest.php index 4275ab148c7..55265329193 100644 --- a/samples/server/petstore/php-slim4/tests/Model/OrderTest.php +++ b/samples/server/petstore/php-slim4/tests/Model/OrderTest.php @@ -2,7 +2,7 @@ /** * OpenAPI Petstore - * PHP version 7.2 + * PHP version 7.4 * * @package OpenAPIServer * @author OpenAPI Generator team diff --git a/samples/server/petstore/php-slim4/tests/Model/PetTest.php b/samples/server/petstore/php-slim4/tests/Model/PetTest.php index d1ef40bc9d2..c7fcbb8251a 100644 --- a/samples/server/petstore/php-slim4/tests/Model/PetTest.php +++ b/samples/server/petstore/php-slim4/tests/Model/PetTest.php @@ -2,7 +2,7 @@ /** * OpenAPI Petstore - * PHP version 7.2 + * PHP version 7.4 * * @package OpenAPIServer * @author OpenAPI Generator team diff --git a/samples/server/petstore/php-slim4/tests/Model/TagTest.php b/samples/server/petstore/php-slim4/tests/Model/TagTest.php index e5bf71c6221..a5b8e1355c4 100644 --- a/samples/server/petstore/php-slim4/tests/Model/TagTest.php +++ b/samples/server/petstore/php-slim4/tests/Model/TagTest.php @@ -2,7 +2,7 @@ /** * OpenAPI Petstore - * PHP version 7.2 + * PHP version 7.4 * * @package OpenAPIServer * @author OpenAPI Generator team diff --git a/samples/server/petstore/php-slim4/tests/Model/UserTest.php b/samples/server/petstore/php-slim4/tests/Model/UserTest.php index 563fbaae4a8..3146ca6f62e 100644 --- a/samples/server/petstore/php-slim4/tests/Model/UserTest.php +++ b/samples/server/petstore/php-slim4/tests/Model/UserTest.php @@ -2,7 +2,7 @@ /** * OpenAPI Petstore - * PHP version 7.2 + * PHP version 7.4 * * @package OpenAPIServer * @author OpenAPI Generator team