diff --git a/modules/openapi-generator/src/main/resources/php-slim4-server/openapi_data_mocker.mustache b/modules/openapi-generator/src/main/resources/php-slim4-server/openapi_data_mocker.mustache
index b18c8f8903778535cd6c6eac0377056ee8cf45c6..5d101d2cf292426c4507596a3efc60ea3339b72b 100644
--- a/modules/openapi-generator/src/main/resources/php-slim4-server/openapi_data_mocker.mustache
+++ b/modules/openapi-generator/src/main/resources/php-slim4-server/openapi_data_mocker.mustache
@@ -127,6 +127,22 @@ final class OpenApiDataMocker implements IMocker
         $exclusiveMinimum = false,
         $exclusiveMaximum = false
     ) {
+        $dataFormat = is_string($dataFormat) ? strtolower($dataFormat) : $dataFormat;
+        switch ($dataFormat) {
+            case IMocker::DATA_FORMAT_INT32:
+                // -2147483647..2147483647
+                $minimum = is_numeric($minimum) ? max($minimum, -2147483647) : -2147483647;
+                $maximum = is_numeric($maximum) ? min($maximum, 2147483647) : 2147483647;
+                break;
+            case IMocker::DATA_FORMAT_INT64:
+                // -9223372036854775807..9223372036854775807
+                $minimum = is_numeric($minimum) ? max($minimum, -9223372036854775807) : -9223372036854775807;
+                $maximum = is_numeric($maximum) ? min($maximum, 9223372036854775807) : 9223372036854775807;
+                break;
+            default:
+                // do nothing, unsupported format
+        }
+
         return $this->getRandomNumber($minimum, $maximum, $exclusiveMinimum, $exclusiveMaximum, 0);
     }
 
@@ -365,7 +381,7 @@ final class OpenApiDataMocker implements IMocker
         foreach ($properties as $propName => $propValue) {
             $options = $this->extractSchemaProperties($propValue);
             $dataType = $options['type'];
-            $dataFormat = $options['dataFormat'] ?? null;
+            $dataFormat = $options['format'] ?? null;
             $ref = $options['$ref'] ?? null;
             $data = $this->mockFromRef($ref);
             $obj->$propName = ($data) ? $data : $this->mock($dataType, $dataFormat, $options);
@@ -525,7 +541,7 @@ final class OpenApiDataMocker implements IMocker
         if ($maxDecimals > 0) {
             return round($min + mt_rand() / mt_getrandmax() * ($max - $min), $maxDecimals);
         }
-        return mt_rand($min, $max);
+        return mt_rand((int) $min, (int) $max);
     }
 }
 {{/apiInfo}}
diff --git a/modules/openapi-generator/src/main/resources/php-slim4-server/openapi_data_mocker_test.mustache b/modules/openapi-generator/src/main/resources/php-slim4-server/openapi_data_mocker_test.mustache
index 94b80e9352b76c05ae5d324210904a050da90c2c..c6e70d781af68be75d269f9220d92bb6e38c154f 100644
--- a/modules/openapi-generator/src/main/resources/php-slim4-server/openapi_data_mocker_test.mustache
+++ b/modules/openapi-generator/src/main/resources/php-slim4-server/openapi_data_mocker_test.mustache
@@ -198,6 +198,36 @@ class OpenApiDataMockerTest extends TestCase
         ];
     }
 
+    /**
+     * @covers ::mockInteger
+     * @dataProvider provideMockIntegerFormats
+     */
+    public function testMockIntegerWithFormats(
+        $dataFormat,
+        $minimum,
+        $maximum,
+        $expectedMin,
+        $expectedMax
+    ) {
+        $mocker = new OpenApiDataMocker();
+        $integer = $mocker->mockInteger($dataFormat, $minimum, $maximum);
+        $this->assertGreaterThanOrEqual($expectedMin, $integer);
+        $this->assertLessThanOrEqual($expectedMax, $integer);
+    }
+
+    public function provideMockIntegerFormats()
+    {
+        return [
+            [IMocker::DATA_FORMAT_INT32, -2147483648, 2147483648, -2147483647, 2147483647],
+            [IMocker::DATA_FORMAT_INT64, '-9223372036854775808', '9223372036854775808', -9223372036854775807, 9223372036854775807],
+            [IMocker::DATA_FORMAT_INT32, -10, 10, -10, 10],
+            [IMocker::DATA_FORMAT_INT64, -10, 10, -10, 10],
+            [IMocker::DATA_FORMAT_INT32, -9223372036854775807, 9223372036854775807, -2147483647, 2147483647],
+            [strtoupper(IMocker::DATA_FORMAT_INT32), -2147483648, 2147483648, -2147483647, 2147483647],
+            [strtoupper(IMocker::DATA_FORMAT_INT64), '-9223372036854775808', '9223372036854775808', -9223372036854775807, 9223372036854775807],
+        ];
+    }
+
     /**
      * @dataProvider provideMockNumberCorrectArguments
      * @covers ::mockNumber
diff --git a/samples/server/petstore/php-slim4/lib/Mock/OpenApiDataMocker.php b/samples/server/petstore/php-slim4/lib/Mock/OpenApiDataMocker.php
index 7f4412a74182816f000854983059dc6d89e17442..facf17f0ef2968a57c59012f6118696b5937f6cc 100644
--- a/samples/server/petstore/php-slim4/lib/Mock/OpenApiDataMocker.php
+++ b/samples/server/petstore/php-slim4/lib/Mock/OpenApiDataMocker.php
@@ -119,6 +119,22 @@ final class OpenApiDataMocker implements IMocker
         $exclusiveMinimum = false,
         $exclusiveMaximum = false
     ) {
+        $dataFormat = is_string($dataFormat) ? strtolower($dataFormat) : $dataFormat;
+        switch ($dataFormat) {
+            case IMocker::DATA_FORMAT_INT32:
+                // -2147483647..2147483647
+                $minimum = is_numeric($minimum) ? max($minimum, -2147483647) : -2147483647;
+                $maximum = is_numeric($maximum) ? min($maximum, 2147483647) : 2147483647;
+                break;
+            case IMocker::DATA_FORMAT_INT64:
+                // -9223372036854775807..9223372036854775807
+                $minimum = is_numeric($minimum) ? max($minimum, -9223372036854775807) : -9223372036854775807;
+                $maximum = is_numeric($maximum) ? min($maximum, 9223372036854775807) : 9223372036854775807;
+                break;
+            default:
+                // do nothing, unsupported format
+        }
+
         return $this->getRandomNumber($minimum, $maximum, $exclusiveMinimum, $exclusiveMaximum, 0);
     }
 
@@ -357,7 +373,7 @@ final class OpenApiDataMocker implements IMocker
         foreach ($properties as $propName => $propValue) {
             $options = $this->extractSchemaProperties($propValue);
             $dataType = $options['type'];
-            $dataFormat = $options['dataFormat'] ?? null;
+            $dataFormat = $options['format'] ?? null;
             $ref = $options['$ref'] ?? null;
             $data = $this->mockFromRef($ref);
             $obj->$propName = ($data) ? $data : $this->mock($dataType, $dataFormat, $options);
@@ -517,6 +533,6 @@ final class OpenApiDataMocker implements IMocker
         if ($maxDecimals > 0) {
             return round($min + mt_rand() / mt_getrandmax() * ($max - $min), $maxDecimals);
         }
-        return mt_rand($min, $max);
+        return mt_rand((int) $min, (int) $max);
     }
 }
diff --git a/samples/server/petstore/php-slim4/test/Mock/OpenApiDataMockerTest.php b/samples/server/petstore/php-slim4/test/Mock/OpenApiDataMockerTest.php
index 2ddf0b8a0f57f7e7aa78ba3b75e863571e95736f..87777551d08f1a228335a54ea284bdfcc8184b10 100644
--- a/samples/server/petstore/php-slim4/test/Mock/OpenApiDataMockerTest.php
+++ b/samples/server/petstore/php-slim4/test/Mock/OpenApiDataMockerTest.php
@@ -190,6 +190,36 @@ class OpenApiDataMockerTest extends TestCase
         ];
     }
 
+    /**
+     * @covers ::mockInteger
+     * @dataProvider provideMockIntegerFormats
+     */
+    public function testMockIntegerWithFormats(
+        $dataFormat,
+        $minimum,
+        $maximum,
+        $expectedMin,
+        $expectedMax
+    ) {
+        $mocker = new OpenApiDataMocker();
+        $integer = $mocker->mockInteger($dataFormat, $minimum, $maximum);
+        $this->assertGreaterThanOrEqual($expectedMin, $integer);
+        $this->assertLessThanOrEqual($expectedMax, $integer);
+    }
+
+    public function provideMockIntegerFormats()
+    {
+        return [
+            [IMocker::DATA_FORMAT_INT32, -2147483648, 2147483648, -2147483647, 2147483647],
+            [IMocker::DATA_FORMAT_INT64, '-9223372036854775808', '9223372036854775808', -9223372036854775807, 9223372036854775807],
+            [IMocker::DATA_FORMAT_INT32, -10, 10, -10, 10],
+            [IMocker::DATA_FORMAT_INT64, -10, 10, -10, 10],
+            [IMocker::DATA_FORMAT_INT32, -9223372036854775807, 9223372036854775807, -2147483647, 2147483647],
+            [strtoupper(IMocker::DATA_FORMAT_INT32), -2147483648, 2147483648, -2147483647, 2147483647],
+            [strtoupper(IMocker::DATA_FORMAT_INT64), '-9223372036854775808', '9223372036854775808', -9223372036854775807, 9223372036854775807],
+        ];
+    }
+
     /**
      * @dataProvider provideMockNumberCorrectArguments
      * @covers ::mockNumber