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