diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index aca1a37..4ed8338 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -81,7 +81,7 @@
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        php-version: [5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3]
+        php-version: [7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3]
       fail-fast: false
     steps:
       - uses: actions/checkout@v4
@@ -95,12 +95,6 @@
       - name: Install Dependencies
         run: composer install
 
-      - name: Backward compatibility for unit test in php greater then 7.1
-        if: matrix.php-version > 7.0
-        run: |
-          sed -i 's/setUp()/setUp():void/' lib/php/test/Unit/*Test.php
-          sed -i 's/setUpBeforeClass()/setUpBeforeClass():void/' lib/php/test/Unit/*Test.php
-
       - name: Run bootstrap
         run: ./bootstrap.sh
 
diff --git a/composer.json b/composer.json
index d882a97..77248a9 100644
--- a/composer.json
+++ b/composer.json
@@ -18,10 +18,10 @@
         "issues": "https://issues.apache.org/jira/browse/THRIFT"
     },
     "require": {
-        "php": "^5.5 || ^7.0 || ^8.0"
+        "php": "^7.1 || ^8.0"
     },
     "require-dev": {
-        "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.5 || ^9.3",
+        "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
         "squizlabs/php_codesniffer": "3.*",
         "ext-json": "*",
         "ext-xml": "*"
diff --git a/doc/install/README.md b/doc/install/README.md
index d073e91..0ebe77c 100644
--- a/doc/install/README.md
+++ b/doc/install/README.md
@@ -32,7 +32,7 @@
     * Gradle 8.4
 * C#: Mono 1.2.4 (and pkg-config to detect it) or Visual Studio 2005+
 * Python 2.6 (including header files for extension modules)
-* PHP 5.0 (optionally including header files for extension modules)
+* PHP 7.1 (optionally including header files for extension modules)
 * Ruby 1.8
     * bundler gem
 * Erlang R12 (R11 works but not recommended)
diff --git a/lib/php/README.md b/lib/php/README.md
index e7144fe..4bbc967 100644
--- a/lib/php/README.md
+++ b/lib/php/README.md
@@ -21,7 +21,7 @@
 
 # Using Thrift with PHP
 
-Thrift requires PHP 5. Thrift makes as few assumptions about your PHP
+Thrift requires PHP 7.1 Thrift makes as few assumptions about your PHP
 environment as possible while trying to make some more advanced PHP
 features (i.e. APCu cacheing using asbolute path URLs) as simple as possible.
 
diff --git a/lib/php/test/Unit/BinarySerializerTest.php b/lib/php/test/Unit/BinarySerializerTest.php
index b97da74..744ca7a 100644
--- a/lib/php/test/Unit/BinarySerializerTest.php
+++ b/lib/php/test/Unit/BinarySerializerTest.php
@@ -31,7 +31,7 @@
  */
 class BinarySerializerTest extends TestCase
 {
-    public function setUp()
+    public function setUp(): void
     {
         $loader = new ThriftClassLoader();
         $loader->registerNamespace('ThriftTest', __DIR__ . '/../Resources/packages/php');
diff --git a/lib/php/test/Unit/JsonSerializeTest.php b/lib/php/test/Unit/JsonSerializeTest.php
index 9fdc3f3..66e4d5e 100644
--- a/lib/php/test/Unit/JsonSerializeTest.php
+++ b/lib/php/test/Unit/JsonSerializeTest.php
@@ -31,7 +31,7 @@
  */
 class JsonSerializeTest extends TestCase
 {
-    protected function setUp()
+    protected function setUp(): void
     {
         $loader = new ThriftClassLoader();
         $loader->registerNamespace('ThriftTest', __DIR__ . '/../Resources/packages/phpjs');
diff --git a/lib/php/test/Unit/TJSONProtocolTest.php b/lib/php/test/Unit/TJSONProtocolTest.php
index 178d63b..9837803 100644
--- a/lib/php/test/Unit/TJSONProtocolTest.php
+++ b/lib/php/test/Unit/TJSONProtocolTest.php
@@ -37,7 +37,7 @@
     private $transport;
     private $protocol;
 
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         $loader = new ThriftClassLoader();
         $loader->registerNamespace('ThriftTest', __DIR__ . '/../Resources/packages/php');
@@ -48,7 +48,7 @@
         TJSONProtocolFixtures::populateTestArgsJSON();
     }
 
-    public function setUp()
+    public function setUp(): void
     {
         $this->transport = new TMemoryBuffer();
         $this->protocol = new TJSONProtocol($this->transport);
diff --git a/lib/php/test/Unit/TSimpleJSONProtocolTest.php b/lib/php/test/Unit/TSimpleJSONProtocolTest.php
index 3189d99..8e6a6d9 100644
--- a/lib/php/test/Unit/TSimpleJSONProtocolTest.php
+++ b/lib/php/test/Unit/TSimpleJSONProtocolTest.php
@@ -37,7 +37,7 @@
     private $transport;
     private $protocol;
 
-    public static function setUpBeforeClass()
+    public static function setUpBeforeClass(): void
     {
         $loader = new ThriftClassLoader();
         $loader->registerNamespace('ThriftTest', __DIR__ . '/../Resources/packages/php');
@@ -48,7 +48,7 @@
         TSimpleJSONProtocolFixtures::populateTestArgsSimpleJSON();
     }
 
-    public function setUp()
+    public function setUp(): void
     {
         $this->transport = new TMemoryBuffer();
         $this->protocol = new TSimpleJSONProtocol($this->transport);
diff --git a/lib/php/test/Unit/ValidatorTest.php b/lib/php/test/Unit/ValidatorTest.php
index 06f6e55..b125424 100644
--- a/lib/php/test/Unit/ValidatorTest.php
+++ b/lib/php/test/Unit/ValidatorTest.php
@@ -29,7 +29,7 @@
  */
 class ValidatorTest extends BaseValidatorTest
 {
-    public function setUp()
+    public function setUp(): void
     {
         $loader = new ThriftClassLoader();
         $loader->registerNamespace('ThriftTest', __DIR__ . '/../Resources/packages/phpv');
diff --git a/lib/php/test/Unit/ValidatorTestOop.php b/lib/php/test/Unit/ValidatorTestOop.php
index 79da11e..9558182 100644
--- a/lib/php/test/Unit/ValidatorTestOop.php
+++ b/lib/php/test/Unit/ValidatorTestOop.php
@@ -29,7 +29,7 @@
  */
 class ValidatorTestOop extends BaseValidatorTest
 {
-    public function setUp()
+    public function setUp(): void
     {
         $loader = new ThriftClassLoader();
         $loader->registerNamespace('ThriftTest', __DIR__ . '/../Resources/packages/phpvo');
