mirror of
https://github.com/e107inc/e107.git
synced 2025-08-27 16:20:13 +02:00
Fix all PHP 8.1 test failures
* `strftime()` has been replaced with a polyfill based on `DateTime`. * Explicit type casts/assertions added where required by PHP 8.1 * `filter_var(…, FILTER_SANITIZE_STRING)` replaced with `strip_tags()` or HTML entity encoding of quotation marks, depending on a guess of what the intended "sanitization" was * `http_build_query()` usage type mismatches fixed * Removed usages of the `FILE_TEXT` constant * To avoid breaking PHP 5.6 compatibility (function return types), `e_session_db` no longer implements `SessionHandlerInterface`. Instead, the alternative non-OOP invocation of `session_set_save_handler()` is used instead to apply the session handler. * The shim for `strptime()` still calls the native function if available but now suppresses the deprecation warning. * `e_db_pdo` explicitly asks for `PDO::ATTR_STRINGIFY_FETCHES` to maintain consistent behavior with past versions of PHP. * `e_db_mysql` explicitly sets `mysqli_report(MYSQLI_REPORT_OFF)` to maintain consistent behavior with past versions of PHP. * Removed pointless random number generator seed from `banner` plugin * Workaround for `COUNT(*)` SQL query in `validatorClass::dbValidateArray()` without a proper API for avoiding SQL injection
This commit is contained in:
@@ -12,6 +12,9 @@
|
||||
|
||||
namespace e107\Shims\Internal;
|
||||
|
||||
use DateTimeZone;
|
||||
use e_date;
|
||||
|
||||
trait StrptimeTrait
|
||||
{
|
||||
/**
|
||||
@@ -38,7 +41,8 @@ trait StrptimeTrait
|
||||
{
|
||||
$result = false;
|
||||
if (function_exists('strptime') && (new \ReflectionFunction('strptime'))->isInternal())
|
||||
$result = strptime($date, $format);
|
||||
// @ to suppress PHP 8.1 deprecation warning
|
||||
$result = @strptime($date, $format);
|
||||
if (!is_array($result))
|
||||
$result = self::strptime_alt($date, $format);
|
||||
return $result;
|
||||
@@ -76,10 +80,10 @@ trait StrptimeTrait
|
||||
|
||||
for ($i = 1; $i <= 12; $i++)
|
||||
{
|
||||
$k = strftime('%B', mktime(0, 0, 0, $i));
|
||||
$k = e_date::strftime('%B', mktime(0, 0, 0, $i));
|
||||
$fullmonth[$k] = $i;
|
||||
|
||||
$j = strftime('%b', mktime(0, 0, 0, $i));
|
||||
$j = e_date::strftime('%b', mktime(0, 0, 0, $i));
|
||||
$abrevmonth[$j] = $i;
|
||||
}
|
||||
|
||||
@@ -153,8 +157,10 @@ trait StrptimeTrait
|
||||
|
||||
$unxTimestamp = mktime($vals['tm_hour'], $vals['tm_min'], $vals['tm_sec'], ($vals['tm_mon'] + 1), $vals['tm_mday'], ($vals['tm_year'] + 1900));
|
||||
|
||||
$vals['tm_wday'] = (int)strftime('%w', $unxTimestamp); // Days since Sunday (0-6)
|
||||
$vals['tm_yday'] = (strftime('%j', $unxTimestamp) - 1); // Days since January 1 (0-365)
|
||||
$datetime = date_create("@$unxTimestamp");
|
||||
$datetime->setTimezone(new DateTimeZone(date_default_timezone_get()));
|
||||
$vals['tm_wday'] = date_format($datetime, 'w'); // Days since Sunday (0-6)
|
||||
$vals['tm_yday'] = date_format($datetime, 'z'); // Days since January 1 (0-365)
|
||||
}
|
||||
|
||||
return !empty($vals) ? $vals : false;
|
||||
|
Reference in New Issue
Block a user