1
0
mirror of https://github.com/e107inc/e107.git synced 2025-03-14 01:19:44 +01:00

Fix all PHP 8.0 test failures

This commit is contained in:
Nick Liu 2020-11-27 17:00:32 +01:00
parent 072c1b3a90
commit f256b924ce
No known key found for this signature in database
GPG Key ID: 1167C5F9C9897637
21 changed files with 103 additions and 34 deletions

View File

@ -17,15 +17,23 @@ jobs:
matrix:
interpreter:
- image: php:5.6
- image: php:7.0
- image: php:7.1
- image: php:7.2
- image: php:7.3
- image: php:7.4
- image: php:8.0-rc
db:
- image: mysql:5.5
- image: mysql:5.6
- image: mysql:5.7
- image: bitnami/mysql:8.0
- image: mariadb:10.0
- image: mariadb:10.1
- image: mariadb:10.2
- image: mariadb:10.3
- image: mariadb:10.4
- image: mariadb:10.5
runs-on: ubuntu-latest
container:
image: ${{ matrix.interpreter.image }}
@ -35,6 +43,7 @@ jobs:
env:
MYSQL_ROOT_PASSWORD: 'Database Password for Continuous Integration'
MYSQL_DATABASE: 'app'
MYSQL_AUTHENTICATION_PLUGIN: 'mysql_native_password'
options: >-
--health-cmd "mysqladmin ping"
--health-interval 10s
@ -77,9 +86,12 @@ jobs:
if [ $(php -r 'printf(version_compare(PHP_VERSION, "7.2.0", ">=") ? 1 : 0);') = '1' ]
then
pecl install xdebug
elif [ $(php -r 'printf(version_compare(PHP_VERSION, "7.0.0", ">=") ? 1 : 0);') = '1' ]
elif [ $(php -r 'printf(version_compare(PHP_VERSION, "7.1.0", ">=") ? 1 : 0);') = '1' ]
then
pecl install xdebug-2.9.8
elif [ $(php -r 'printf(version_compare(PHP_VERSION, "7.0.0", ">=") ? 1 : 0);') = '1' ]
then
pecl install xdebug-2.7.2
else
pecl install xdebug-2.5.5
fi

View File

@ -2552,10 +2552,10 @@ class error_handler
* @param $message
* @param $file
* @param $line
* @param $context
* @param $context (deprecated since PHP 7.2.0)
* @return bool
*/
function handle_error($type, $message, $file, $line, $context) {
function handle_error($type, $message, $file, $line, $context = null) {
$startup_error = (!defined('E107_DEBUG_LEVEL')); // Error before debug system initialized

View File

@ -1414,7 +1414,7 @@ class lancheck
function checkLog($type='error',$count)
function checkLog($type='error',$count=1)
{
$lan = $this->transLanguage;
$_SESSION['lancheck'][$lan][$type] += $count;
@ -1602,9 +1602,9 @@ class lancheck
// for plugins and themes - checkes what kind of language files directory structure we have
function check_lanfiles($mode,$comp_name,$base_lan="English",$target_lan)
function check_lanfiles($mode,$comp_name,$base_lan="English",$target_lan=null)
{
if (empty($target_lan)) throw new RuntimeException(__METHOD__ . ' requires non-empty $target_lan');
$tp = e107::getParser();

View File

@ -227,7 +227,7 @@ class news_shortcodes extends e_shortcode
<li><a href="'.$url.'">'.e107::getParser()->toHTML($caption,false,'defs').'</a></li>
</ul>';
if(BOOTSTRAP === 4)
if(defined('BOOTSTRAP') && BOOTSTRAP === 4)
{
$text = '<a class="pager-button btn btn-primary hidden-print" href="'.$url.'">'.e107::getParser()->toHTML($caption,false,'defs').'</a>';
}

View File

@ -166,7 +166,7 @@ class cpage_shortcodes extends e_shortcode
if(e107::getPref('comments_disabled') == 0 && !$comflag)
{
if(BOOTSTRAP)
if(defined('BOOTSTRAP') && BOOTSTRAP)
{
return e107::getMessage()->addInfo(LAN_PAGE_17)->render();
}

View File

@ -13,7 +13,7 @@
class sitelinks_alt
{
function sitelinks_alt_shortcode($parm)
static function sitelinks_alt_shortcode($parm)
{
$params = explode('+', $parm);
@ -95,7 +95,7 @@ class sitelinks_alt
}
function adnav_cat($cat_title, $cat_link, $cat_img, $cat_id = FALSE, $cat_open = FALSE)
static function adnav_cat($cat_title, $cat_link, $cat_img, $cat_id = FALSE, $cat_open = FALSE)
{
$tp = e107::getParser();
@ -128,7 +128,7 @@ class sitelinks_alt
return $text;
}
function adnav_main($cat_title, $cat_link, $cat_img, $cat_id = FALSE, $params, $cat_open = FALSE)
static function adnav_main($cat_title, $cat_link, $cat_img, $cat_id = FALSE, $params, $cat_open = FALSE)
{
$tp = e107::getParser();
@ -176,7 +176,7 @@ class sitelinks_alt
return $text;
}
function render_sub($linklist, $id, $params, $icon)
static function render_sub($linklist, $id, $params, $icon)
{
$tp = e107::getParser();

View File

@ -0,0 +1,38 @@
<?php
/**
* e107 website system
*
* Copyright (C) 2008-2020 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
*/
namespace e107\Shims\Internal;
trait GetParentClassTrait
{
/**
* Retrieves the parent class name for object or class
*
* Compatible replacement for PHP internal get_parent_class()
*
* Maintains compatibility with PHP 5.6 while suppressing the TypeError
* thrown by PHP 8.0 if the string provided does not resolve into an extant
* class
*
* @param string|object $object An object or a string that may be a class
* @return false|string The parent class as a string or FALSE otherwise
*/
public static function get_parent_class($object)
{
try
{
return \get_parent_class($object);
}
catch (\Throwable $_)
{
return false;
}
}
}

View File

@ -13,6 +13,7 @@ namespace e107\Shims;
trait InternalShimsTrait
{
use Internal\GetParentClassTrait;
use Internal\ReadfileTrait;
use Internal\StrptimeTrait;
}

View File

@ -3031,7 +3031,7 @@ class e107
* @param boolean $merge
* @return array
*/
public static function getTemplateInfo($plug_name = null, $id, $key = null, $override = true, $merge = false)
public static function getTemplateInfo($plug_name, $id, $key = null, $override = true, $merge = false)
{
if($plug_name)
{

View File

@ -231,7 +231,7 @@ class e_marketplace
* @param $data - e107.org plugin/theme feed data.
* @return bool|string
*/
public function getDownloadModal($type='plugin',$data)
public function getDownloadModal($type='plugin',$data=array())
{
$url = false;

View File

@ -3240,7 +3240,7 @@ var_dump($select_options);*/
}
else
{
$sel = is_array($selected) ? in_array($value, $selected) : ($value == $selected);
$sel = is_array($selected) ? in_array($value, $selected) : ($value === $selected);
if(!empty($options['optDisabled']) && is_array($options['optDisabled']))
{

View File

@ -2184,7 +2184,7 @@ class themeHandler
mode = 1 :: selected site theme
mode = 2 :: selected admin theme
*/
function renderTheme($mode = 0, $theme)
function renderTheme($mode = 0, $theme = array())
{
$ns = e107::getRender();
$pref = e107::getPref();

View File

@ -1244,10 +1244,10 @@ class e_user_provider
public static function getTypeOf($providerName)
{
$class_name = "Hybridauth\Provider\\{$providerName}";
$parent_class = get_parent_class($class_name);
$parent_class = eShims::get_parent_class($class_name);
if (!$parent_class) return false;
$parent_class_split = explode("\\", get_parent_class($class_name));
$parent_class_split = explode("\\", eShims::get_parent_class($class_name));
$type = end($parent_class_split);
if ($type == "AbstractAdapter") return $providerName;
if (!in_array($type, ['OAuth1', 'OAuth2', 'OpenID'])) return self::getTypeOf($type);

View File

@ -918,6 +918,7 @@ class user_class
*/
public function getName($id)
{
$id = (int) $id;
$cn = abs($id);
$ucString = 'Class:'.$id; // Debugging aid - this should be overridden

View File

@ -2271,7 +2271,7 @@ class e107forum
* $forum_href override ONLY applies when template is missing FORUM_CRUMB
* $thread_title is needed for post-related breadcrumbs
*/
function set_crumb($forum_href=false, $thread_title='', &$templateVar)
function set_crumb($forum_href=false, $thread_title='', &$templateVar=null)
{
$tp = e107::getParser();

View File

@ -857,7 +857,7 @@ class siteStats
if ($do_errors XOR !$found)
{
$totalArray[$k] = $v;
$total += vartrue($v['ttlv']);
$total += (int) vartrue($v['ttlv']);
}
}
$totalArray = $this -> arraySort($totalArray, "ttl");
@ -2037,7 +2037,7 @@ class siteStats
$text .= "
</td>
<td style='width:10%; text-align:right' class='forumheader3'>".number_format($val);
<td style='width:10%; text-align:right' class='forumheader3'>".number_format((float) $val);
return $text;
}

View File

@ -36,11 +36,11 @@ class PriorityCallbacks
$this->shutdown_functions[] = $callable;
}
private function __clone() {}
public function __clone() {}
private function __sleep() {}
public function __sleep() {}
private function __wakeup() {}
public function __wakeup() {}
}
PriorityCallbacks::instance();

View File

@ -660,11 +660,6 @@ abstract class e_db_abstractTest extends \Codeception\Test\Unit
}
*/
public function testDb_Close()
{
$this->db->db_Close();
}
public function testDelete()
{
@ -1147,8 +1142,6 @@ abstract class e_db_abstractTest extends \Codeception\Test\Unit
$xql->truncate($table);
$empty = $xql->isEmpty($table);
$this->assertTrue($empty,"isEmpty() or truncate() failed");
$xql->close();
}
}

View File

@ -44,6 +44,14 @@ class e_db_mysqlTest extends e_db_abstractTest
);
}
public function _after()
{
$db_impl = $this->getDbImplementation();
if (@empty($db_impl->server_info)) return;
parent::_after();
}
public function testGetPDO()
{
$result = $this->db->getPDO();
@ -71,4 +79,20 @@ class e_db_mysqlTest extends e_db_abstractTest
$result = $this->db->escape("Can't", true);
$this->assertEquals("Can\'t", $result);
}
public function testDb_Close()
{
$db_impl = $this->getDbImplementation();
$this->assertFalse(@empty($db_impl->server_info));
$this->db->db_Close();
$this->assertTrue(@empty($db_impl->server_info));
}
private function getDbImplementation()
{
$reflection_object = new ReflectionObject($this->db);
$db_property = $reflection_object->getProperty('mySQLaccess');
$db_property->setAccessible(true);
return $db_property->getValue($this->db);
}
}

View File

@ -161,6 +161,7 @@ class e_formTest extends \Codeception\Test\Unit
}
e107::includeLan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_admin.php');
e107::includeLan(e_PLUGIN.'forum/languages/English/English_front.php');
include_once(e_CORE."templates/admin_icons_template.php");
include_once(e_PLUGIN.'forum/forum_class.php');
include_once(e_PLUGIN.'forum/templates/forum_icons_template.php');
@ -925,7 +926,7 @@ class e_formTest extends \Codeception\Test\Unit
'dropdown_001' => "<select name='dropdown_001' id='dropdown-001' class='tbox select form-control' tabindex='3'><option value='opt_value_1'>Label 1</option><option value='opt_value_2' selected='selected'>Label 2</option></select>",
'dropdown_002' => "<select name='dropdown_002' id='dropdown-002' class='tbox select form-control' tabindex='4'><option value='0'>Option 0</option><option value='1' selected='selected'>Option 1</option><option value='2'>Option 2</option></select>",
'dropdown_002' => "<select name='dropdown_002' id='dropdown-002' class='tbox select form-control' tabindex='4'><option value='0'>Option 0</option><option value='1'>Option 1</option><option value='2'>Option 2</option></select>",
'textarea_001' => "<textarea name='textarea_001' rows='5' cols='40' id='textarea-001' class='form-control input-xlarge' tabindex='5'>the quick brown fox jumps over the lazy dog</textarea>",

View File

@ -104,7 +104,7 @@ if (isset($_POST['delp']))
$qs = explode(".", e_QUERY);
$self_page =($qs[0] == 'id' && intval($qs[1]) == USERID);
if (!defined("USER_WIDTH")){ define("USER_WIDTH","width:95%"); }
if(THEME_LEGACY === true) // v1.x BC Fix for loading old templates.
{
@ -132,7 +132,6 @@ $user_shortcodes->wrapper('user/view');
$user_frm = new form;
require_once(HEADERF);
if (!defined("USER_WIDTH")){ define("USER_WIDTH","width:95%"); }
$full_perms = getperms("0") || check_class(varset($pref['memberlist_access'], 253)); // Controls display of info from other users
if (!$full_perms && !$self_page)