Port for php8 (#8105)

* Port for php8

* Port php c extension for php8

* Update composer.json

* Drop php7.0 support

* Update phpunit for php7.1 in c extension test

* Add back support for php7.0

* Add badge for php8 continuous build
diff --git a/php/tests/ArrayTest.php b/php/tests/ArrayTest.php
index d167331..269d11d 100644
--- a/php/tests/ArrayTest.php
+++ b/php/tests/ArrayTest.php
@@ -1,5 +1,6 @@
 <?php
 
+require_once('test_base.php');
 require_once('test_util.php');
 
 use Google\Protobuf\Internal\RepeatedField;
@@ -7,7 +8,7 @@
 use Foo\TestMessage;
 use Foo\TestMessage\Sub;
 
-class ArrayTest extends \PHPUnit\Framework\TestCase
+class ArrayTest extends TestBase
 {
 
     #########################################################
@@ -296,15 +297,15 @@
 
         // Test append.
         $arr[] = 1;
-        $this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(1.0, $arr[0], MAX_FLOAT_DIFF);
 
         $arr[] = 1.1;
-        $this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(1.1, $arr[1], MAX_FLOAT_DIFF);
 
         $arr[] = '2';
-        $this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(2.0, $arr[2], MAX_FLOAT_DIFF);
         $arr[] = '3.1';
-        $this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(3.1, $arr[3], MAX_FLOAT_DIFF);
 
         $this->assertEquals(4, count($arr));
 
@@ -315,15 +316,15 @@
 
         // Test set.
         $arr[0] = 1;
-        $this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(1.0, $arr[0], MAX_FLOAT_DIFF);
 
         $arr[1] = 1.1;
-        $this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(1.1, $arr[1], MAX_FLOAT_DIFF);
 
         $arr[2] = '2';
-        $this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(2.0, $arr[2], MAX_FLOAT_DIFF);
         $arr[3] = '3.1';
-        $this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(3.1, $arr[3], MAX_FLOAT_DIFF);
     }
 
     #########################################################
@@ -336,15 +337,15 @@
 
         // Test append.
         $arr[] = 1;
-        $this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(1.0, $arr[0], MAX_FLOAT_DIFF);
 
         $arr[] = 1.1;
-        $this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(1.1, $arr[1], MAX_FLOAT_DIFF);
 
         $arr[] = '2';
-        $this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(2.0, $arr[2], MAX_FLOAT_DIFF);
         $arr[] = '3.1';
-        $this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(3.1, $arr[3], MAX_FLOAT_DIFF);
 
         $this->assertEquals(4, count($arr));
 
@@ -355,15 +356,15 @@
 
         // Test set.
         $arr[0] = 1;
-        $this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(1.0, $arr[0], MAX_FLOAT_DIFF);
 
         $arr[1] = 1.1;
-        $this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(1.1, $arr[1], MAX_FLOAT_DIFF);
 
         $arr[2] = '2';
-        $this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(2.0, $arr[2], MAX_FLOAT_DIFF);
         $arr[3] = '3.1';
-        $this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
+        $this->assertFloatEquals(3.1, $arr[3], MAX_FLOAT_DIFF);
     }
 
     #########################################################
@@ -566,6 +567,8 @@
             $sub = new Sub(['a' => $sub]);
         }
         $m->setRepeatedMessage($subs);
+
+        $this->assertTrue(true);
     }
 
     #########################################################