diff --git a/class2.php b/class2.php
index 665091551..1b9d8a36f 100755
--- a/class2.php
+++ b/class2.php
@@ -1233,7 +1233,7 @@ function check_class($var, $userclass = null, $uid = 0)
$class_array = !is_array($userclass) ? explode(',', $userclass) : $userclass;
- $varList = !is_array($var) ? explode(',', $var) : $var;
+ $varList = !is_array($var) ? explode(',', (string) $var) : $var;
$latchedAccess = false;
foreach ($varList as $v)
diff --git a/comment.php b/comment.php
index 63ccf8d65..30de4c920 100644
--- a/comment.php
+++ b/comment.php
@@ -107,7 +107,7 @@ if(e_AJAX_REQUEST) // TODO improve security
{
$pid = intval(varset($_POST['pid'], 0)); // ID of the specific comment being edited (nested comments - replies)
$row = array();
- $authName = filter_var($_POST['author_name'],FILTER_SANITIZE_STRING);
+ $authName = e107::getParser()->filter($_POST['author_name'], 'str');
$clean_authorname = vartrue($authName,USERNAME);
$clean_comment = e107::getParser()->toText($_POST['comment']);
$clean_subject = e107::getParser()->filter($_POST['subject'],'str');
diff --git a/e107_admin/admin_log.php b/e107_admin/admin_log.php
index 05de1d5cc..74eaf4d8c 100644
--- a/e107_admin/admin_log.php
+++ b/e107_admin/admin_log.php
@@ -371,7 +371,7 @@ class admin_log_ui extends e_admin_ui
if(($action == "backdel") && isset($_POST['backdeltype']))
{
// $old_date = intval($qs[1]);
- $old_string = strftime("%d %B %Y", $old_date);
+ $old_string = e_date::strftime("%d %B %Y", $old_date);
$qry = "dblog_datestamp < ".$old_date; // Same field for both logs
switch($_POST['backdeltype'])
diff --git a/e107_admin/banlist_export.php b/e107_admin/banlist_export.php
index bdaf00fdb..e1b66598d 100644
--- a/e107_admin/banlist_export.php
+++ b/e107_admin/banlist_export.php
@@ -65,7 +65,7 @@ if (!empty($_POST['ban_types']))
}
}
-$filename = 'banlist_'.strftime("%Y%m%d_%H%M%S").'.csv';
+$filename = 'banlist_'.e_date::strftime("%Y%m%d_%H%M%S").'.csv';
if ($error_string = do_export($filename, $type_list, $format_array, $use_separator, $use_quote))
{
@@ -98,7 +98,7 @@ function do_export($filename, $type_list='',$format_array=array(), $sep = ',', $
break;
case 'banlist_datestamp' :
case 'banlist_banexpires' :
- if ($row[$f]) $line .= $spacer.$quot.strftime($v,$row[$f]).$quot; else $line .= $spacer.$quot.'0'.$quot;
+ if ($row[$f]) $line .= $spacer.$quot.e_date::strftime($v,$row[$f]).$quot; else $line .= $spacer.$quot.'0'.$quot;
break;
}
$spacer = $sep;
diff --git a/e107_admin/cpage.php b/e107_admin/cpage.php
index b7ac42473..6434d08c0 100644
--- a/e107_admin/cpage.php
+++ b/e107_admin/cpage.php
@@ -141,7 +141,7 @@ class page_admin_form_ui extends e_admin_form_ui
parse_str(str_replace('&', '&', e_QUERY), $query); //FIXME - FIX THIS
$query['action'] = 'edit';
$query['id'] = $id;
- $query = http_build_query($query,null, '&');
+ $query = http_build_query($query, '', '&');
$text = "
".ADMIN_EDIT_ICON." ";
diff --git a/e107_admin/cron.php b/e107_admin/cron.php
index c4939cba6..8b5461714 100644
--- a/e107_admin/cron.php
+++ b/e107_admin/cron.php
@@ -542,9 +542,9 @@ class cron_admin_form_ui extends e_admin_form_ui
$text .= " ";
$text .= ($day != '*') ? LAN_CRON_52 ." ". $day : LAN_CRON_40; // Day(s)
$text .= " ";
- $text .= ($month != '*') ? LAN_CRON_53 ." ". strftime("%B", mktime(00, 00, 00, $month, 1, 2000)) : LAN_CRON_41; // Month(s)
+ $text .= ($month != '*') ? LAN_CRON_53 ." ". e_date::strftime("%B", mktime(00, 00, 00, (int) $month, 1, 2000)) : LAN_CRON_41; // Month(s)
$text .= " ";
- $text .= ($weekday != '*') ? LAN_CRON_54 ." ". strftime("%A", mktime(00, 00, 00, 5, $weekday, 2000)) : LAN_CRON_42; // Weekday(s)
+ $text .= ($weekday != '*') ? LAN_CRON_54 ." ". e_date::strftime("%A", mktime(00, 00, 00, 5, (int) $weekday, 2000)) : LAN_CRON_42; // Weekday(s)
return "".ADMIN_INFO_ICON."
@@ -711,7 +711,7 @@ class cron_admin_form_ui extends e_admin_form_ui
{
$sel = (in_array($i, $month)) ? "selected='selected'" : "";
$diz = mktime(00, 00, 00, $i, 1, 2000);
- $text .= "".strftime("%B", $diz)." \n";
+ $text .= "".e_date::strftime("%B", $diz)." \n";
}
$text .= "
@@ -724,7 +724,7 @@ class cron_admin_form_ui extends e_admin_form_ui
for ($i = 0; $i <= 6; $i++)
{
$sel = (in_array(strval($i), $weekday)) ? "selected='selected'" : "";
- $text .= "".strftime("%A", mktime(00, 00, 00, 5, $i, 2000))." \n";
+ $text .= "".e_date::strftime("%A", mktime(00, 00, 00, 5, $i, 2000))." \n";
}
$text .= "
";
diff --git a/e107_admin/image.php b/e107_admin/image.php
index 4a6b55500..cb9e9b907 100644
--- a/e107_admin/image.php
+++ b/e107_admin/image.php
@@ -672,7 +672,7 @@ class media_form_ui extends e_admin_form_ui
// $save = ($_GET['bbcode']!='file') ? "e-dialog-save" : "";
// e-dialog-close
- $for = $this->getController()->getQuery('for');
+ $for = (string) $this->getController()->getQuery('for');
diff --git a/e107_admin/prefs.php b/e107_admin/prefs.php
index 57f7d4fac..d7b8f59c3 100644
--- a/e107_admin/prefs.php
+++ b/e107_admin/prefs.php
@@ -787,26 +787,26 @@ $text .= "
$def = strtotime('December 21, 2012 3:45pm');
$inputdate = array( // TODO add more formats
- "%A, %d %B, %Y" => strftime("%A, %d %B, %Y",$def),
- "%A, %d %b, %Y" => strftime("%A, %d %b, %Y",$def),
- "%a, %d %B, %Y" => strftime("%a, %d %B, %Y",$def),
- "%a, %d %b, %Y" => strftime("%a, %d %b, %Y",$def),
+ "%A, %d %B, %Y" => e_date::strftime("%A, %d %B, %Y",$def),
+ "%A, %d %b, %Y" => e_date::strftime("%A, %d %b, %Y",$def),
+ "%a, %d %B, %Y" => e_date::strftime("%a, %d %B, %Y",$def),
+ "%a, %d %b, %Y" => e_date::strftime("%a, %d %b, %Y",$def),
- "%A, %B %d, %Y" => strftime("%A, %B %d, %Y",$def),
- "%A, %b %d, %Y" => strftime("%A, %b %d, %Y",$def),
- "%A, %b %d, %y" => strftime("%A, %b %d, %y",$def),
+ "%A, %B %d, %Y" => e_date::strftime("%A, %B %d, %Y",$def),
+ "%A, %b %d, %Y" => e_date::strftime("%A, %b %d, %Y",$def),
+ "%A, %b %d, %y" => e_date::strftime("%A, %b %d, %y",$def),
- "%B %d, %Y" => strftime("%B %d, %Y",$def),
- "%b %d, %Y" => strftime("%b %d, %Y",$def),
- "%b %d, %y" => strftime("%b %d, %y",$def),
+ "%B %d, %Y" => e_date::strftime("%B %d, %Y",$def),
+ "%b %d, %Y" => e_date::strftime("%b %d, %Y",$def),
+ "%b %d, %y" => e_date::strftime("%b %d, %y",$def),
- "%d %B, %Y" => strftime("%d %B, %Y",$def),
- "%d %b, %Y" => strftime("%d %b, %Y",$def),
- "%d %b, %y" => strftime("%d %b, %y",$def),
+ "%d %B, %Y" => e_date::strftime("%d %B, %Y",$def),
+ "%d %b, %Y" => e_date::strftime("%d %b, %Y",$def),
+ "%d %b, %y" => e_date::strftime("%d %b, %y",$def),
- "%Y-%m-%d" => strftime("%Y-%m-%d",$def),
- "%d-%m-%Y" => strftime("%d-%m-%Y",$def),
- "%m/%d/%Y" => strftime("%m/%d/%Y",$def)
+ "%Y-%m-%d" => e_date::strftime("%Y-%m-%d",$def),
+ "%d-%m-%Y" => e_date::strftime("%d-%m-%Y",$def),
+ "%m/%d/%Y" => e_date::strftime("%m/%d/%Y",$def)
);
@@ -815,19 +815,19 @@ $text .= "
- $inputtime["%I:%M %p"] = strftime("%I:%M %p",$def);
+ $inputtime["%I:%M %p"] = e_date::strftime("%I:%M %p",$def);
if(e107::getDate()->supported('P'))
{
- $inputtime["%I:%M %P"] = strftime("%I:%M %P",$def);
+ $inputtime["%I:%M %P"] = e_date::strftime("%I:%M %P",$def);
}
if(e107::getDate()->supported('l'))
{
- $inputtime["%l:%M %p"] = strftime("%l:%M %p",$def);
- $inputtime["%l:%M %P"] = strftime("%l:%M %P",$def);
+ $inputtime["%l:%M %p"] = e_date::strftime("%l:%M %p",$def);
+ $inputtime["%l:%M %P"] = e_date::strftime("%l:%M %P",$def);
}
- $inputtime["%H:%M"] = strftime("%H:%M",$def);
- $inputtime["%H:%M:%S"] = strftime("%H:%M:%S",$def);
+ $inputtime["%H:%M"] = e_date::strftime("%H:%M",$def);
+ $inputtime["%H:%M:%S"] = e_date::strftime("%H:%M:%S",$def);
diff --git a/e107_admin/users.php b/e107_admin/users.php
index 254267c7b..4bf8865f9 100644
--- a/e107_admin/users.php
+++ b/e107_admin/users.php
@@ -2410,7 +2410,7 @@ class users_admin_form_ui extends e_admin_form_ui
$att['type'] = 'boolean';
// $uid = $this->getController()->getModel()->get('user_id');
- $perms = $this->getController()->getModel()->get('user_perms');
+ $perms = (string) $this->getController()->getModel()->get('user_perms');
if($mode == 'filter' && getperms('3'))
{
diff --git a/e107_core/bbcodes/link.bb b/e107_core/bbcodes/link.bb
index cba18249e..683481288 100644
--- a/e107_core/bbcodes/link.bb
+++ b/e107_core/bbcodes/link.bb
@@ -62,6 +62,7 @@ global $pref, $parm;
$extras = "rel=external";
}
+ $extras = (string) $extras;
if($extras == "external" || strpos($extras,"rel=external")!==FALSE)
{
$insert = "rel='external' ";
diff --git a/e107_core/shortcodes/batch/admin_shortcodes.php b/e107_core/shortcodes/batch/admin_shortcodes.php
index 8d8be21eb..4d81af63b 100644
--- a/e107_core/shortcodes/batch/admin_shortcodes.php
+++ b/e107_core/shortcodes/batch/admin_shortcodes.php
@@ -136,7 +136,7 @@ class admin_shortcodes extends e_shortcode
if (!ADMIN) { return ''; }
return "
-
+
";
}
@@ -495,6 +495,7 @@ class admin_shortcodes extends e_shortcode
}
if (ADMIN) {
+ e107::coreLan('', true);
if (!function_exists('admin_latest')) //XXX Is this still necessary?
{
function admin_latest($parm='')
@@ -515,14 +516,14 @@ class admin_shortcodes extends e_shortcode
// $text .= "";
$oldconfigs = array();
- $oldconfigs['e-news'][0] = array('icon' =>E_16_NEWS, 'title' =>ADLAN_LAT_2, 'url' => e_ADMIN. 'newspost.php?mode=sub&action=list', 'total' =>$submitted_news);
+ $oldconfigs['e-news'][0] = array('icon' =>defset('E_16_NEWS'), 'title' =>defset('ADLAN_LAT_2'), 'url' => e_ADMIN. 'newspost.php?mode=sub&action=list', 'total' =>$submitted_news);
if(empty($pref['comments_disabled']) && varset($pref['comments_engine'],'e107') === 'e107')
{
- $oldconfigs['e-comment'][0] = array('icon' =>E_16_COMMENT, 'title' =>ADLAN_LAT_9, 'url' => e_ADMIN_ABS. 'comment.php?searchquery=&filter_options=comment_blocked__2', 'total' =>$comments_pending);
+ $oldconfigs['e-comment'][0] = array('icon' =>defset('E_16_COMMENT'), 'title' =>defset('ADLAN_LAT_9'), 'url' => e_ADMIN_ABS. 'comment.php?searchquery=&filter_options=comment_blocked__2', 'total' =>$comments_pending);
}
- $oldconfigs['e-upload'][0] = array('icon' =>E_16_UPLOADS, 'title' =>ADLAN_LAT_7, 'url' => e_ADMIN. 'upload.php', 'total' =>$active_uploads);
+ $oldconfigs['e-upload'][0] = array('icon' =>defset('E_16_UPLOADS'), 'title' =>defset('ADLAN_LAT_7'), 'url' => e_ADMIN. 'upload.php', 'total' =>$active_uploads);
$messageTypes = array(/*'Broken Download',*/ 'Dev Team Message');
$queryString = '';
@@ -536,7 +537,7 @@ class admin_shortcodes extends e_shortcode
{
// $text .= "".ADLAN_LAT_8." [".$amount."] ";
- $oldconfigs['e-generic'][0] = array('icon' =>E_16_NOTIFY, 'title' =>ADLAN_LAT_8, 'url' => e_ADMIN_ABS. 'message.php', 'total' =>$amount);
+ $oldconfigs['e-generic'][0] = array('icon' =>defset('E_16_NOTIFY'), 'title' =>defset('ADLAN_LAT_8'), 'url' => e_ADMIN_ABS. 'message.php', 'total' =>$amount);
}
@@ -1304,7 +1305,7 @@ class admin_shortcodes extends e_shortcode
' .FOOTLAN_19. '
- ' .strftime('%A %d %B %Y - %H:%M').
+ ' .e_date::strftime('%A %d %B %Y - %H:%M').
' ';
return e107::getRender()->tablerender(FOOTLAN_13, $text, '', TRUE);
@@ -2146,7 +2147,7 @@ Inverse 10 10
continue;
}
- $catid = $admin_cat['id'][$subitem[4]];
+ $catid = isset($admin_cat['id'][$subitem[4]]) ? $admin_cat['id'][$subitem[4]] : null;
$tmp = array();
$tmp['text'] = $subitem[1];
$tmp['description'] = $subitem[2];
@@ -2415,7 +2416,7 @@ Inverse 10 10
$languages = $slng->installed();//array('English','French');
$multiDoms = array();
- if($langSubs = explode("\n", e107::getPref('multilanguage_subdomain')))
+ if($langSubs = explode("\n", (string) e107::getPref('multilanguage_subdomain')))
{
foreach($langSubs as $v)
diff --git a/e107_core/shortcodes/batch/news_shortcodes.php b/e107_core/shortcodes/batch/news_shortcodes.php
index 1a2322d5a..cb6a86726 100644
--- a/e107_core/shortcodes/batch/news_shortcodes.php
+++ b/e107_core/shortcodes/batch/news_shortcodes.php
@@ -1209,7 +1209,7 @@ class news_shortcodes extends e_shortcode
/** New in v2.3 {NEWS_PAGINATION} */
function sc_news_pagination($parm=null)
{
- $params = e107::getRegistry('core/news/pagination');
+ $params = (string) e107::getRegistry('core/news/pagination');
parse_str($params,$opts);
diff --git a/e107_core/shortcodes/batch/signup_shortcodes.php b/e107_core/shortcodes/batch/signup_shortcodes.php
index 7bf7a34c2..dbe4548bf 100755
--- a/e107_core/shortcodes/batch/signup_shortcodes.php
+++ b/e107_core/shortcodes/batch/signup_shortcodes.php
@@ -199,7 +199,7 @@ class signup_shortcodes extends e_shortcode
if (check_class($pref['displayname_class']))
{
$dis_name_len = varset($pref['displayname_maxlength'],15);
- $val = !empty($_POST['username']) ? filter_var($_POST['username'], FILTER_SANITIZE_STRING) : '';
+ $val = !empty($_POST['username']) ? e107::getParser()->filter($_POST['username'], 'str') : '';
return e107::getForm()->text('username', $val, $dis_name_len);
}
@@ -230,7 +230,7 @@ class signup_shortcodes extends e_shortcode
$options['class'] = vartrue($parm['class'],'');
$options['placeholder'] = vartrue($parm['placeholder']) ? $parm['placeholder'] : '';
- $val = !empty($_POST['loginname']) ? filter_var($_POST['loginname'], FILTER_SANITIZE_STRING) : '';
+ $val = !empty($_POST['loginname']) ? e107::getParser()->filter($_POST['loginname'], 'str') : '';
return e107::getForm()->text('loginname', $val, $log_name_length, $options);
}
@@ -252,7 +252,7 @@ class signup_shortcodes extends e_shortcode
$options['class'] = vartrue($parm['class'],'');
$options['placeholder'] = vartrue($parm['placeholder'],'');
- $val = ($_POST['realname']) ? filter_var($_POST['realname'], FILTER_SANITIZE_STRING) : '';
+ $val = ($_POST['realname']) ? e107::getParser()->filter($_POST['realname'], 'str') : '';
return e107::getForm()->text('realname', $val, 100, $options);
diff --git a/e107_core/shortcodes/batch/usersettings_shortcodes.php b/e107_core/shortcodes/batch/usersettings_shortcodes.php
index 8ac966b69..232ce49b8 100755
--- a/e107_core/shortcodes/batch/usersettings_shortcodes.php
+++ b/e107_core/shortcodes/batch/usersettings_shortcodes.php
@@ -642,7 +642,7 @@ class usersettings_shortcodes extends e_shortcode
}
$uVal = str_replace(chr(1), "", varset($this->var['user_' . $parm]));
- $fval = $ue->user_extended_edit($fInfo, $uVal);
+ $fval = (string) $ue->user_extended_edit($fInfo, $uVal);
$rVal = !empty($fInfo['user_extended_struct_required']);
diff --git a/e107_handlers/Shims/Internal/StrptimeTrait.php b/e107_handlers/Shims/Internal/StrptimeTrait.php
index cda1c74a5..af66b1edf 100644
--- a/e107_handlers/Shims/Internal/StrptimeTrait.php
+++ b/e107_handlers/Shims/Internal/StrptimeTrait.php
@@ -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;
diff --git a/e107_handlers/admin_log_class.php b/e107_handlers/admin_log_class.php
index 69586092b..1828223e3 100644
--- a/e107_handlers/admin_log_class.php
+++ b/e107_handlers/admin_log_class.php
@@ -966,7 +966,7 @@ class e_admin_log
}
else
{
- $app = null;
+ $app = 0;
$text = $head . $text;
}
diff --git a/e107_handlers/admin_ui.php b/e107_handlers/admin_ui.php
index 3c7259963..9cd61784a 100755
--- a/e107_handlers/admin_ui.php
+++ b/e107_handlers/admin_ui.php
@@ -6686,9 +6686,10 @@ class e_admin_ui extends e_admin_controller_ui
protected function parseAliases()
{
// parse table
- if(strpos($this->table, '.') !== false)
+ $tableName = $this->getTableName();
+ if(strpos($tableName, '.') !== false)
{
- $tmp = explode('.', $this->table, 2);
+ $tmp = explode('.', $tableName, 2);
$this->table = $tmp[1];
$this->tableAlias = $tmp[0];
unset($tmp);
@@ -7443,7 +7444,7 @@ class e_admin_form_ui extends e_form
$vars = $this->getController()->getQuery();
$vars['from'] = '[FROM]';
- $paginate = http_build_query($vars, null, '&');
+ $paginate = http_build_query($vars, '', '&');
e107::js('footer-inline', "
\$('#admin-ui-list-filter a.nextprev-item').on('click', function() {
@@ -7517,7 +7518,7 @@ class e_admin_form_ui extends e_form
$gridAction = $this->getController()->getAction() === 'grid' ? 'list' : 'grid';
$gridQuery = (array) $_GET;
$gridQuery['action'] = $gridAction;
- $toggleUrl = e_REQUEST_SELF. '?' .http_build_query($gridQuery, null, '&');
+ $toggleUrl = e_REQUEST_SELF. '?' .http_build_query($gridQuery, '', '&');
$gridIcon = ($gridAction === 'grid') ? ADMIN_GRID_ICON : ADMIN_LIST_ICON;
$gridTitle = ($gridAction === 'grid') ? LAN_UI_VIEW_GRID_LABEL : LAN_UI_VIEW_LIST_LABEL;
$gridToggle = "' .$gridIcon. ' ';
@@ -8082,10 +8083,10 @@ class e_admin_form_ui extends e_form
$parms['__options'] = $fopts;
}
-
- if(!is_array(varset($parms['__options'])))
+ if (!isset($parms['__options'])) $parms['__options'] = null;
+ if(!is_array($parms['__options']))
{
- parse_str($parms['__options'], $parms['__options']);
+ parse_str((string) $parms['__options'], $parms['__options']);
}
$opts = $parms['__options'];
if(!empty($opts['multiple']) && $type === 'batch')
diff --git a/e107_handlers/bbcode_handler.php b/e107_handlers/bbcode_handler.php
index 023332556..5a90ecc6e 100644
--- a/e107_handlers/bbcode_handler.php
+++ b/e107_handlers/bbcode_handler.php
@@ -389,6 +389,7 @@ class e_bbcode
ob_start();
try
{
+ $bbcode = isset($bbcode) && is_string($bbcode) ? $bbcode : '';
$bbcode_return = eval($bbcode); //FIXME notice removal
}
catch (ParseError $e)
@@ -403,6 +404,7 @@ class e_bbcode
trigger_error($error, E_USER_NOTICE);
}
+ $bbcode_return = isset($bbcode_return) ? $bbcode_return : '';
/* added to remove possibility of nested bbcode exploits ... */
if(strpos($bbcode_return, "[") !== FALSE)
{
@@ -548,7 +550,7 @@ class e_bbcode
*/
function renderButtons($template='', $id='', $options=array())
{
-
+ $template = (string) $template;
$tp = e107::getParser();
// Notice Removal
@@ -804,7 +806,7 @@ class e_bbcode
$code_text = (strpos($img['src'],'http') === 0) ? $img['src'] : str_replace($tp->getUrlConstants('raw'), $tp->getUrlConstants('sc'), $qr['src']);
unset($img['src'],$img['srcset'],$img['@value'], $img['caption'], $img['alt']);
- $parms = !empty($img) ? ' '.str_replace('+', ' ', http_build_query($img,null, '&')) : "";
+ $parms = !empty($img) ? ' '.str_replace('+', ' ', http_build_query($img)) : "";
$replacement = '[img'.$parms.']'.$code_text.'[/img]';
diff --git a/e107_handlers/cache_handler.php b/e107_handlers/cache_handler.php
index 580fda319..2d642deb7 100644
--- a/e107_handlers/cache_handler.php
+++ b/e107_handlers/cache_handler.php
@@ -320,7 +320,6 @@ class ecache {
* @scope private
*/
function delete($dir, $pattern = "*.*", $syscache = false) {
- $deleted = false;
$pattern = ($syscache ? "S_" : "C_").$pattern;
$pattern = str_replace(array("\*", "\?"), array(".*", "."), preg_quote($pattern));
if (substr($dir, -1) != "/") {
@@ -331,9 +330,7 @@ class ecache {
$d = opendir($dir);
while ($file = readdir($d)) {
if (is_file($dir.$file) && preg_match("/^{$pattern}$/", $file)) {
- if (unlink($dir.$file)) {
- $deleted[] = $file;
- }
+ unlink($dir.$file);
}
}
closedir($d);
diff --git a/e107_handlers/cron_class.php b/e107_handlers/cron_class.php
index 26d4c3297..9ba0cccfd 100644
--- a/e107_handlers/cron_class.php
+++ b/e107_handlers/cron_class.php
@@ -391,7 +391,7 @@ class CronParser
function getLastRan()
{
- return explode(",", strftime("%M,%H,%d,%m,%w,%Y", $this->lastRan)); //Get the values for now in a format we can use
+ return explode(",", e_date::strftime("%M,%H,%d,%m,%w,%Y", $this->lastRan)); //Get the values for now in a format we can use
}
function getLastRanUnix()
@@ -505,7 +505,7 @@ class CronParser
}
//put the current time into an array
- $t = strftime("%M,%H,%d,%m,%w,%Y", time());
+ $t = e_date::strftime("%M,%H,%d,%m,%w,%Y", time());
$this->now = explode(",", $t);
$this->year = $this->now[5];
diff --git a/e107_handlers/date_handler.php b/e107_handlers/date_handler.php
index eacc7415c..dbf549b9d 100644
--- a/e107_handlers/date_handler.php
+++ b/e107_handlers/date_handler.php
@@ -37,17 +37,17 @@ class e_date
for ($i=1; $i < 8; $i++)
{
- $day = strftime('%A', mktime(1,1,1, 1, $i, 2012));
- $dates['days'][] = $day;
- $dates['daysShort'][] = strftime('%a', mktime(1,1,1, 1, $i, 2012));
- $dates['daysMin'][] = substr($day,0,2);
+ $day = e_date::strftime('%A', mktime(1, 1, 1, 1, $i, 2012));
+ $dates['days'][] = $day;
+ $dates['daysShort'][] = e_date::strftime('%a', mktime(1, 1, 1, 1, $i, 2012));
+ $dates['daysMin'][] = substr($day, 0, 2);
}
for ($i=1; $i < 13; $i++)
{
- $dates['months'][] = strftime('%B', mktime(1,1,1, $i, 2, 2013));
- $dates['monthsShort'][] = strftime('%h', mktime(1,1,1, $i, 2, 2013));
+ $dates['months'][] = e_date::strftime('%B', mktime(1, 1, 1, $i, 2, 2013));
+ $dates['monthsShort'][] = e_date::strftime('%h', mktime(1, 1, 1, $i, 2, 2013));
}
@@ -86,11 +86,11 @@ class e_date
{
$val = ($type == 'month-short') ? '%b' : '%B'; //eg. 'Aug' / 'August'
$marray = array();
- for ($i=1; $i < 13; $i++)
- {
- $marray[$i] = strftime($val,mktime(1,1,1,$i,1,2000));
+ for ($i = 1; $i < 13; $i++)
+ {
+ $marray[$i] = e_date::strftime($val, mktime(1, 1, 1, $i, 1, 2000));
}
-
+
return $marray;
}
@@ -102,15 +102,15 @@ class e_date
switch ($type)
{
case 'day-shortest': // eg. 'Tu'
- $days[] = substr(strftime('%a',mktime(1,1,1,6,$i,2014)),0,2);
+ $days[] = substr(e_date::strftime('%a', mktime(1, 1, 1, 6, $i, 2014)), 0, 2);
break;
case 'day-short': // eg. 'Tue'
- $days[] = strftime('%a',mktime(1,1,1,6,$i,2014));
+ $days[] = e_date::strftime('%a', mktime(1, 1, 1, 6, $i, 2014));
break;
default: // eg. 'Tuesday'
- $days[] = strftime('%A',mktime(1,1,1,6,$i,2014));
+ $days[] = e_date::strftime('%A', mktime(1, 1, 1, 6, $i, 2014));
break;
}
}
@@ -196,7 +196,7 @@ class e_date
break;
}
- $dateString = strftime($mask, $datestamp);
+ $dateString = e_date::strftime($mask, $datestamp);
if (!e107::getParser()->isUTF8($dateString))
{
@@ -206,8 +206,95 @@ class e_date
return $dateString;
}
+ /**
+ * Polyfill for {@see strftime()}, which was deprecated in PHP 8.1
+ *
+ * The implementation is an approximation that may be wrong for some obscure formatting characters.
+ *
+ * @param string $format The old {@see strftime()} format string
+ * @param int|null $timestamp A Unix epoch timestamp. If null, defaults to the value of {@see time()}.
+ * @return string Datetime formatted according to the provided arguments
+ */
+ public static function strftime($format, $timestamp = null)
+ {
+ if ($timestamp === null) $timestamp = time();
+ $datetime = date_create("@$timestamp");
+ $datetime->setTimezone(new DateTimeZone(date_default_timezone_get()));
+ $formatMap = [
+ '%a' => 'D',
+ '%A' => 'l',
+ '%d' => 'd',
+ '%e' => function($datetime)
+ {
+ return str_pad(date_format($datetime, 'n'), 2, " ", STR_PAD_LEFT);
+ },
+ '%j' => function($datetime)
+ {
+ return str_pad(date_format($datetime, 'z'), 3, "0", STR_PAD_LEFT);
+ },
+ '%u' => 'N',
+ '%w' => 'w',
+ '%U' => 'W',
+ '%V' => 'W',
+ '%W' => 'W',
+ '%b' => 'M',
+ '%B' => 'F',
+ '%h' => 'M',
+ '%m' => 'm',
+ '%C' => function($datetime)
+ {
+ return (string) ((int) date_format($datetime, 'Y') / 100);
+ },
+ '%g' => 'y',
+ '%G' => 'Y',
+ '%y' => 'y',
+ '%Y' => 'Y',
+ '%H' => 'H',
+ '%k' => function($datetime)
+ {
+ return str_pad(date_format($datetime, 'G'), 2, " ", STR_PAD_LEFT);
+ },
+ '%I' => 'h',
+ '%l' => function($datetime)
+ {
+ return str_pad(date_format($datetime, 'g'), 2, " ", STR_PAD_LEFT);
+ },
+ '%M' => 'i',
+ '%p' => 'A',
+ '%P' => 'a',
+ '%r' => 'h:i:s A',
+ '%R' => 'H:i',
+ '%S' => 's',
+ '%T' => 'H:i:s',
+ '%X' => 'H:i:s',
+ '%z' => 'O',
+ '%Z' => 'T',
+ '%c' => 'r',
+ '%D' => 'm/d/y',
+ '%F' => 'Y-m-d',
+ '%s' => 'U',
+ '%x' => 'Y-m-d',
+ '%n' => "\n",
+ '%t' => "\t",
+ '%%' => '\%',
+ ];
+ foreach ($formatMap as $strftime_key => $date_format_key)
+ {
+ if (is_callable($date_format_key))
+ {
+ $replacement = chunk_split($date_format_key($datetime), 1, "\\");
+ }
+ else
+ {
+ $replacement = $date_format_key;
+ }
+ $format = str_replace($strftime_key, $replacement, $format);
+ }
+
+ return date_format($datetime, $format);
+ }
/**
* @deprecated - for internal use only.
@@ -787,11 +874,12 @@ class e_date
*/
public function strptime($str, $format)
{
- trigger_error(''.__METHOD__.' is deprecated. Use eShims::strptime() instead', E_USER_DEPRECATED); // NO LAN
+ trigger_error('' . __METHOD__ . ' is deprecated. Use eShims::strptime() instead', E_USER_DEPRECATED); // NO LAN
$vals = eShims::strptime($str, $format); // PHP5 is more accurate than below.
- $vals['tm_amon'] = strftime('%b', mktime(0, 0, 0, $vals['tm_mon'] + 1));
- $vals['tm_fmon'] = strftime('%B', mktime(0, 0, 0, $vals['tm_mon'] + 1));
+ $vals['tm_amon'] = e_date::strftime('%b', mktime(0, 0, 0, $vals['tm_mon'] + 1));
+ $vals['tm_fmon'] = e_date::strftime('%B', mktime(0, 0, 0, $vals['tm_mon'] + 1));
+
return $vals;
}
@@ -870,12 +958,7 @@ class e_date
// Evaluate the formats whilst suppressing any errors.
foreach($strftimeFormats as $format => $description)
{
- //if (False !== ($value = @strftime("%{$format}")))
- $value = @strftime("%{$format}");
- if (False !== $value)
- {
- $strftimeValues[$format] = $value;
- }
+ $strftimeValues[$format] = e_date::strftime("%{$format}");
}
// Find the longest value.
diff --git a/e107_handlers/db_table_admin_class.php b/e107_handlers/db_table_admin_class.php
index b47e14439..1cce540f6 100644
--- a/e107_handlers/db_table_admin_class.php
+++ b/e107_handlers/db_table_admin_class.php
@@ -128,6 +128,7 @@ class db_table_admin
// Returns an array where each entry is the definitions of a field or index
function parse_field_defs($text)
{
+ $text = (string) $text;
$ans = array(
);
$text = str_replace("\r", "\n", $text);
diff --git a/e107_handlers/e_db_pdo_class.php b/e107_handlers/e_db_pdo_class.php
index 3ce59f149..0d8233c9a 100644
--- a/e107_handlers/e_db_pdo_class.php
+++ b/e107_handlers/e_db_pdo_class.php
@@ -426,7 +426,7 @@ class e_db_pdo implements e_db
if ($this->debugMode === true)
{
$aTrace = debug_backtrace();
- $pTable = $this->mySQLcurTable;
+ $pTable = (string) $this->mySQLcurTable;
if(!strlen($pTable))
{
@@ -2558,6 +2558,11 @@ class e_db_pdo implements e_db
private function setSQLMode()
{
$this->db_Query("SET SESSION sql_mode='NO_ENGINE_SUBSTITUTION';");
+ /**
+ * Disable PHP 8.1 PDO result set typing casting for consistency with PHP 5.6 through 8.0
+ * @link https://github.com/php/php-src/blob/4025cf2875f895e9f7193cebb1c8efa4290d052e/UPGRADING#L130-L134
+ */
+ $this->mySQLaccess->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true);
}
@@ -2623,7 +2628,7 @@ class e_db_pdo implements e_db
{
if (is_readable(e_CACHE_DB.$tableName.'.php'))
{
- $temp = file_get_contents(e_CACHE_DB.$tableName.'.php', FILE_TEXT);
+ $temp = file_get_contents(e_CACHE_DB.$tableName.'.php');
if ($temp !== false)
{
$typeDefs = e107::unserialize($temp);
diff --git a/e107_handlers/e_parse_class.php b/e107_handlers/e_parse_class.php
index 7f67c4651..4ce21ae04 100644
--- a/e107_handlers/e_parse_class.php
+++ b/e107_handlers/e_parse_class.php
@@ -508,7 +508,7 @@ class e_parse
foreach($data as $key => $var)
{
//Fix - sanitize keys as well
- $key = filter_var($key, FILTER_SANITIZE_STRING);
+ $key = str_replace(['"', "'"], ['"', '''], $key);
$ret[$key] = $this->toDB($var, $nostrip, $no_encode, $mod, $parm);
}
@@ -787,6 +787,8 @@ class e_parse
return $arr;
}
+ $text = (string) $text;
+
if(MAGIC_QUOTES_GPC == true)
{
$text = stripslashes($text);
@@ -2003,6 +2005,7 @@ class e_parse
*/
public function toText($text)
{
+ $text = (string) $text;
if($this->isBBcode($text) === true) // convert any bbcodes to html
{
@@ -2338,6 +2341,7 @@ class e_parse
*/
public function thumbUrl($url = null, $options = array(), $raw = false, $full = false)
{
+ $url = (string) $url;
$this->staticCount++; // increment counter.
@@ -3717,7 +3721,7 @@ class e_parse
$parm = $options;
$options = varset($parm['space'], '');
}
- elseif(strpos($options, '='))
+ elseif (is_string($options) && strpos($options, '='))
{
parse_str($options, $parm);
$options = varset($parm['space'], '');
@@ -4618,7 +4622,7 @@ class e_parse
$ytpref['cc_lang_pref'] = e_LAN; // switch captions with chosen user language.
}
- $ytqry = http_build_query($ytpref, null, '&');
+ $ytqry = http_build_query($ytpref, '', '&');
$defClass = !empty($this->bootstrap) ? 'embed-responsive embed-responsive-16by9 ratio ratio-16x9' : 'video-responsive'; // levacy backup.
@@ -4848,7 +4852,7 @@ class e_parse
{
$filterTypes = array(
'int' => FILTER_SANITIZE_NUMBER_INT,
- 'str' => FILTER_SANITIZE_STRING, // no html.
+ 'str' => function($input) { return strip_tags($input); },
'email' => FILTER_SANITIZE_EMAIL,
'url' => FILTER_SANITIZE_URL,
'enc' => FILTER_SANITIZE_ENCODED
@@ -4870,13 +4874,19 @@ class e_parse
trigger_error("Unsupported type '".$type."' used in e107::getParser()->filter().", E_USER_WARNING);
}
- if(is_array($text))
+ $filter = $filterTypes[$type];
+ $filter = function($element) use ($filter)
{
- $ret = filter_var_array($text, $filterTypes[$type]);
+ $element = (string) $element;
+ return is_callable($filter) ? $filter($element) : filter_var($element, $filter);
+ };
+ if (is_array($text))
+ {
+ $ret = filter_var($text, FILTER_CALLBACK, ['options' => $filter]);
}
else
{
- $ret = filter_var($text, $filterTypes[$type]);
+ $ret = $filter($text);
}
}
diff --git a/e107_handlers/e_render_class.php b/e107_handlers/e_render_class.php
index 39ca1caa4..f0a76e89a 100644
--- a/e107_handlers/e_render_class.php
+++ b/e107_handlers/e_render_class.php
@@ -370,6 +370,7 @@
*/
private function tablestyle($caption, $text, $mode)
{
+ $text = (string) $text;
// Automatic list detection .
$isList = (strncmp(ltrim($text), '_request['h']) ? intval($this->_request['h']) : $ret['w'];
$ret['aw'] = isset($this->_request['aw']) ? intval($this->_request['aw']) : false;
$ret['ah'] = isset($this->_request['ah']) ? intval($this->_request['ah']) : $ret['aw'];
- $ret['c'] = isset($this->_request['c']) ? strtoupper(substr(filter_var($this->_request['c'],FILTER_SANITIZE_STRING),0,1)) : false;
+ $ret['c'] = isset($this->_request['c']) ? strtoupper(substr(e107::getParser()->filter($this->_request['c'], 'str'),0,1)) : false;
// $ret['wm'] = isset($this->_request['wm']) ? intval($this->_request['wm']) : $ret['wm'];
if($ret['c'] == 'A') // auto
diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php
index 02f6ee070..7413e0743 100644
--- a/e107_handlers/form_handler.php
+++ b/e107_handlers/form_handler.php
@@ -2745,7 +2745,7 @@ class e_form
if(!is_array($options))
{
- parse_str($options, $options);
+ parse_str((string) $options, $options);
}
if(is_array($value))
@@ -2979,7 +2979,7 @@ class e_form
}
if(!is_array($options))
{
- parse_str($options, $options);
+ parse_str((string) $options, $options);
}
if(!empty($options['help']))
@@ -3052,7 +3052,7 @@ class e_form
if(!is_array($options))
{
- parse_str($options, $options);
+ parse_str((string) $options, $options);
}
@@ -3109,7 +3109,7 @@ class e_form
{
if(!is_array($options))
{
- parse_str($options, $options);
+ parse_str((string) $options, $options);
}
if($option_array === 'yesno')
@@ -3712,6 +3712,7 @@ var_dump($select_options);*/
*/
public function admin_button($name, $value, $action = 'submit', $label = '', $options = array())
{
+ $action = (string) $action;
$btype = 'submit';
if(strpos($action, 'action') === 0 || $action === 'button')
{
@@ -3909,7 +3910,8 @@ var_dump($select_options);*/
//
foreach ($options as $option => $optval)
{
- $optval = trim($optval);
+ $optval = trim((string) $optval);
+ $optval = htmlspecialchars($optval, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);
switch ($option)
{
@@ -4384,14 +4386,15 @@ var_dump($select_options);*/
public function thead($fieldarray, $columnPref = array(), $querypattern = '', $requeststr = '')
{
+ $tp = e107::getParser();
$text = '';
- $querypattern = filter_var($querypattern, FILTER_SANITIZE_STRING);
+ $querypattern = $tp->filter($querypattern, 'str');
if(!$requeststr)
{
$requeststr = rawurldecode(e_QUERY);
}
- $requeststr = filter_var($requeststr, FILTER_SANITIZE_STRING);
+ $requeststr = $tp->filter($requeststr, 'str');
// Recommended pattern: mode=list&field=[FIELD]&asc=[ASC]&from=[FROM]
if(strpos($querypattern,'&')!==FALSE)
@@ -4787,7 +4790,7 @@ var_dump($select_options);*/
{
foreach($array as $k=>$v)
{
- $jsonArray[$k] = str_replace("'", '`', $v);
+ $jsonArray[$k] = str_replace("'", '`', (string) $v);
}
}
@@ -4978,7 +4981,7 @@ var_dump($select_options);*/
$eModalCap .= " data-modal-submit='true'";
}
- $query = http_build_query($query, null, '&');
+ $query = http_build_query($query, '', '&');
$text .= "
".$editIconDefault. ' ';
}
@@ -5226,10 +5229,11 @@ var_dump($select_options);*/
parse_str($attributes['writeParms'], $attributes['writeParms']);
}
$wparms = $attributes['writeParms'];
-
- if(!is_array(varset($wparms['__options'])))
+
+ if (!isset($wparms['__options'])) $wparms['__options'] = null;
+ if(!is_array($wparms['__options']))
{
- parse_str($wparms['__options'], $wparms['__options']);
+ parse_str((string) $wparms['__options'], $wparms['__options']);
}
if(!empty($wparms['optArray']))
diff --git a/e107_handlers/iphandler_class.php b/e107_handlers/iphandler_class.php
index 56fc6820a..e0beb5bef 100644
--- a/e107_handlers/iphandler_class.php
+++ b/e107_handlers/iphandler_class.php
@@ -157,7 +157,7 @@ class eIPHandler
*/
public function __construct($configDir = '')
{
- $configDir = trim($configDir);
+ $configDir = trim((string) $configDir);
if ($configDir)
{
@@ -1452,7 +1452,7 @@ class banlistManager
private function dateFormat($date)
{
if ($date == 0) return '0';
- return strftime('%Y%m%d_%H%M%S',$date);
+ return e_date::strftime('%Y%m%d_%H%M%S',$date);
}
diff --git a/e107_handlers/media_class.php b/e107_handlers/media_class.php
index d93824d2d..a4b2a19e9 100644
--- a/e107_handlers/media_class.php
+++ b/e107_handlers/media_class.php
@@ -1177,6 +1177,7 @@ class e_media
*/
public function detectType($mediaURL)
{
+ $mediaURL = (string) $mediaURL;
$type = pathinfo($mediaURL,PATHINFO_EXTENSION);
if($type == 'glyph')
@@ -1456,7 +1457,7 @@ class e_media
return $path;
}
- $ext = e107::getFile()->getFileExtension($mime);
+ $ext = (string) e107::getFile()->getFileExtension($mime);
$len = strlen($ext);
diff --git a/e107_handlers/menumanager_class.php b/e107_handlers/menumanager_class.php
index 4aaa37d1a..7bb1354c2 100644
--- a/e107_handlers/menumanager_class.php
+++ b/e107_handlers/menumanager_class.php
@@ -601,7 +601,7 @@ class e_menuManager
function menuPresetPerms($val)
{
- $link_class = strtolower(trim($val));
+ $link_class = strtolower(trim((string) $val));
$menu_perm['everyone'] = e_UC_PUBLIC;
$menu_perm['guest'] = e_UC_GUEST;
$menu_perm['member'] = e_UC_MEMBER;
diff --git a/e107_handlers/mysql_class.php b/e107_handlers/mysql_class.php
index fbfd40a58..5ce16e72d 100644
--- a/e107_handlers/mysql_class.php
+++ b/e107_handlers/mysql_class.php
@@ -133,6 +133,11 @@ class e_db_mysql implements e_db
$this->dbg = e107::getDebug();
+ /**
+ * Revert PHP 8.1 mysqli default error mode
+ * @link https://github.com/php/php-src/blob/4025cf2875f895e9f7193cebb1c8efa4290d052e/UPGRADING#L101-L105
+ */
+ mysqli_report(MYSQLI_REPORT_OFF);
}
function getPDO()
@@ -430,7 +435,7 @@ class e_db_mysql implements e_db
/** @var $db_debug e107_db_debug */
global $db_debug;
$aTrace = debug_backtrace();
- $pTable = $this->mySQLcurTable;
+ $pTable = (string) $this->mySQLcurTable;
if (!strlen($pTable)) {
$pTable = '(complex query)';
} else {
@@ -2464,7 +2469,7 @@ class e_db_mysql implements e_db
{
if (is_readable(e_CACHE_DB.$tableName.'.php'))
{
- $temp = file_get_contents(e_CACHE_DB.$tableName.'.php', FILE_TEXT);
+ $temp = file_get_contents(e_CACHE_DB.$tableName.'.php');
if ($temp !== FALSE)
{
$typeDefs = e107::unserialize($temp);
diff --git a/e107_handlers/news_class.php b/e107_handlers/news_class.php
index 435e59947..071ad9a9d 100644
--- a/e107_handlers/news_class.php
+++ b/e107_handlers/news_class.php
@@ -632,7 +632,7 @@ class e_news_item extends e_front_model
$params = array($val); //value is always the first callback argument
$params = array_merge($params, explode(',', $parm['arg']));
//should be done with date handler (awaiting for modifications)
- return strftime(varset($parm['arg'], e107::getPref('shortdate')), $val);
+ return e_date::strftime(varset($parm['arg'], e107::getPref('shortdate')), $val);
break;
default:
diff --git a/e107_handlers/plugin_class.php b/e107_handlers/plugin_class.php
index 4b17e004e..24b9f3c1f 100644
--- a/e107_handlers/plugin_class.php
+++ b/e107_handlers/plugin_class.php
@@ -1046,7 +1046,7 @@ class e_plugin
if(empty($ver))
{
- return null;
+ return '';
}
$ver = str_replace('e107','',$ver);
@@ -1079,7 +1079,7 @@ class e_plugin
);
- return str_replace($pathFilter,'', $path);
+ return str_replace($pathFilter,'', (string) $path);
}
diff --git a/e107_handlers/search_class.php b/e107_handlers/search_class.php
index 28a237c80..f995e14c9 100644
--- a/e107_handlers/search_class.php
+++ b/e107_handlers/search_class.php
@@ -32,7 +32,7 @@ class e_search
function __construct($query = '')
{
$tp = e107::getParser();
- $this->query = $query;
+ $this->query = (string) $query;
$this->bullet = '';
if(defined('GLYPH'))
diff --git a/e107_handlers/session_handler.php b/e107_handlers/session_handler.php
index ab82667a0..c6afbe9b0 100644
--- a/e107_handlers/session_handler.php
+++ b/e107_handlers/session_handler.php
@@ -397,6 +397,7 @@ class e_session
if($key == null) // clear all under this namespace.
{
$this->_data = array(); // must be set to array() not unset.
+ return $this;
}
if(strpos($key,'/') !== false) // multi-dimensional
@@ -538,7 +539,14 @@ class e_session
// ini_set('session.save_handler', 'user');
$session = new e_session_db;
- session_set_save_handler($session, true);
+ session_set_save_handler(
+ [$session, 'open'],
+ [$session, 'close'],
+ [$session, 'read'],
+ [$session, 'write'],
+ [$session, 'destroy'],
+ [$session, 'gc']
+ );
$session->setSaveHandler();
break;
@@ -1112,7 +1120,12 @@ class e_core_session extends e_session
}
-class e_session_db implements SessionHandlerInterface
+/**
+ * Database session handler
+ *
+ * @todo PHP 8.1 support with {@see SessionHandlerInterface}
+ */
+class e_session_db #implements SessionHandlerInterface
{
/**
* @var e_db
diff --git a/e107_handlers/shortcode_handler.php b/e107_handlers/shortcode_handler.php
index 5a89316ad..4e6594765 100644
--- a/e107_handlers/shortcode_handler.php
+++ b/e107_handlers/shortcode_handler.php
@@ -992,8 +992,7 @@ class e_parse_shortcode
// print_a($this);
}
-
- $ret = preg_replace_callback('#\{([A-Z][^\x02]*?\S)\}#', array(&$this, 'doCode'), $text); // must always start with uppercase letter
+ $ret = preg_replace_callback('#\{([A-Z][^\x02]*?\S)\}#', array(&$this, 'doCode'), (string) $text); // must always start with uppercase letter
// $ret = preg_replace_callback('#\{(\S[^\x02]*?\S)\}#', array(&$this, 'doCode'), $text);
$this->parseSCFiles = $saveParseSCFiles; // Restore previous value
$this->addedCodes = $saveCodes;
@@ -1270,7 +1269,7 @@ class e_parse_shortcode
include_once($_path);
- if (class_exists($_class, false)) // prevent __autoload - performance
+ if (is_string($_class) && class_exists($_class, false)) // prevent __autoload - performance
{
// SecretR - fix array(parm, sc_mode) causing parm to become an array, see issue 424
if(!method_exists($_class, $_function))
diff --git a/e107_handlers/sitelinks_class.php b/e107_handlers/sitelinks_class.php
index 1fc156811..7069bcdc7 100644
--- a/e107_handlers/sitelinks_class.php
+++ b/e107_handlers/sitelinks_class.php
@@ -1457,7 +1457,8 @@ i.e-cat_users-32{ background-position: -555px 0; width: 32px; height: 32px; }
$srch = array('{ICON}', '{CAPTION}');
$repl = array(varset($extraParms['icon']), $title);
- $title = str_replace($srch,$repl, varset($tmpl['caption']));
+ $caption = isset($tmpl['caption']) ? (string) $tmpl['caption'] : '';
+ $title = str_replace($srch,$repl, $caption);
$ret = $ns->tablerender($title, $text, 'default', true);
$ns->setUniqueId(null);
diff --git a/e107_handlers/traffic_class.php b/e107_handlers/traffic_class.php
index 1fd720550..363d9bf51 100644
--- a/e107_handlers/traffic_class.php
+++ b/e107_handlers/traffic_class.php
@@ -51,8 +51,8 @@ class e107_traffic
*/
function TimeDelta($tStart, $tFinish)
{
- $tFrom = explode(' ', $tStart);
- $tTo = explode(' ', $tFinish);
+ $tFrom = explode(' ', (string) $tStart);
+ $tTo = explode(' ', (string) $tFinish);
if(!isset($tFrom[1]))
{
diff --git a/e107_handlers/upload_handler.php b/e107_handlers/upload_handler.php
index 71c238631..b4878c52c 100644
--- a/e107_handlers/upload_handler.php
+++ b/e107_handlers/upload_handler.php
@@ -195,7 +195,7 @@ function process_uploaded_files($uploaddir, $fileinfo = FALSE, $options = NULL)
foreach ($files['name'] as $key=>$name)
{
- $name = filter_var($name, FILTER_SANITIZE_STRING);
+ $name = $tp->filter($name, 'str');
$first_error = FALSE; // Clear error flag
if (($name != '') || $files['size'][$key]) // Need this check for things like file manager which allow multiple possible uploads
diff --git a/e107_handlers/userclass_class.php b/e107_handlers/userclass_class.php
index ebc2a1025..97e7e3e2b 100644
--- a/e107_handlers/userclass_class.php
+++ b/e107_handlers/userclass_class.php
@@ -451,6 +451,7 @@ class user_class
*/
public function uc_dropdown($fieldname, $curval = 0, $optlist = '', $extra_js = '')
{
+ $optlist = (string) $optlist;
$show_classes = self::uc_required_class_list($optlist); // Get list of classes which meet criteria
$text = '';
diff --git a/e107_handlers/validator_class.php b/e107_handlers/validator_class.php
index 22c383146..59a29b171 100644
--- a/e107_handlers/validator_class.php
+++ b/e107_handlers/validator_class.php
@@ -1386,7 +1386,20 @@ class validatorClass
break;
}
$field = varset($options['dbFieldName'], $f);
- if ($temp = $u_sql->count($targetTable, "(*)", "WHERE `{$f}`='" . filter_var($v, FILTER_SANITIZE_STRING) . "' AND `user_id` != " . $userID))
+ // XXX: Different implementations due to missing API for preventing SQL injections
+ $count = 0;
+ if ($u_sql instanceof e_db_mysql)
+ {
+ $v = $u_sql->escape($v);
+ $count = $u_sql->count($targetTable, "(*)", "WHERE `{$f}`='$v' AND `user_id` != " . $userID);
+ }
+ else
+ {
+ $u_sql->select($targetTable, "COUNT(*)", "`{$f}`=:value", ['value' => $v]);
+ $row = $u_sql->fetch('num');
+ $count = $row[0];
+ }
+ if ($count)
{
$errMsg = ERR_DUPLICATE;
}
diff --git a/e107_plugins/banner/banner.php b/e107_plugins/banner/banner.php
index 1a57a832d..fdfc41153 100644
--- a/e107_plugins/banner/banner.php
+++ b/e107_plugins/banner/banner.php
@@ -96,8 +96,8 @@ if (isset($_POST['clientsubmit']))
{
while ($row = $sql->fetch())
{
- $start_date = ($row['banner_startdate'] ? strftime("%d %B %Y", $row['banner_startdate']) : BANNERLAN_31);
- $end_date = ($row['banner_enddate'] ? strftime("%d %B %Y", $row['banner_enddate']) : BANNERLAN_31);
+ $start_date = ($row['banner_startdate'] ? e_date::strftime("%d %B %Y", $row['banner_startdate']) : BANNERLAN_31);
+ $end_date = ($row['banner_enddate'] ? e_date::strftime("%d %B %Y", $row['banner_enddate']) : BANNERLAN_31);
$scArray = array();
$scArray['BANNER_TABLE_CLICKPERCENTAGE'] = ($row['banner_clicks'] && $row['banner_impressions'] ? round(($row['banner_clicks'] / $row['banner_impressions']) * 100)."%" : "-");
diff --git a/e107_plugins/banner/e_shortcode.php b/e107_plugins/banner/e_shortcode.php
index 881f1cebe..50825d66e 100644
--- a/e107_plugins/banner/e_shortcode.php
+++ b/e107_plugins/banner/e_shortcode.php
@@ -26,8 +26,6 @@ class banner_shortcodes extends e_shortcode
$sql = e107::getDb();
$tp = e107::getParser();
- mt_srand((double) microtime() * 1000000);
- $seed = mt_rand(1, 2000000000);
$time = time();
$campaign = (isset($parm['campaign']) ? $parm['campaign'] : $parm);
@@ -40,7 +38,7 @@ class banner_shortcodes extends e_shortcode
$query .= " AND banner_keywords REGEXP " . $tags_regexp;
}
- $query .= " ORDER BY RAND($seed) LIMIT 1";
+ $query .= " ORDER BY RAND() LIMIT 1";
if($sql->select('banner', 'banner_id, banner_image, banner_clickurl, banner_description', $query))
{
diff --git a/e107_plugins/blogcalendar_menu/blogcalendar_menu.php b/e107_plugins/blogcalendar_menu/blogcalendar_menu.php
index dbcf2b1a9..d9d8bf033 100644
--- a/e107_plugins/blogcalendar_menu/blogcalendar_menu.php
+++ b/e107_plugins/blogcalendar_menu/blogcalendar_menu.php
@@ -19,7 +19,7 @@
*/
if (!defined('e107_INIT')) { exit; }
-
+$parm = isset($parm) && is_string($parm) ? $parm : '';
$cString = 'nq_news_blogacalendar_menu_'.preg_replace('#[^\w]#', '', $parm);
$cached = e107::getCache()->retrieve($cString);
diff --git a/e107_plugins/download/download_shortcodes.php b/e107_plugins/download/download_shortcodes.php
index 3387b1dd3..0818d5fa2 100644
--- a/e107_plugins/download/download_shortcodes.php
+++ b/e107_plugins/download/download_shortcodes.php
@@ -357,7 +357,7 @@ class download_shortcodes extends e_shortcode
}
- return "".$text." " ;
+ return "".$text." " ;
}
diff --git a/e107_plugins/download/handlers/category_class.php b/e107_plugins/download/handlers/category_class.php
index 638add31a..dcfba5d3a 100644
--- a/e107_plugins/download/handlers/category_class.php
+++ b/e107_plugins/download/handlers/category_class.php
@@ -140,7 +140,7 @@ class downloadCategory
{
$text = "".$cat['download_category_id']." ".$cat['download_category_parent']." ";
$text .= $prefix.htmlspecialchars($cat['download_category_name']).$postfix." ".$cat['d_size']." ";
- $text .= "".$cat['d_count']." ".$cat['d_requests']." ".strftime('%H:%M %d-%m-%Y',$cat['d_last'])." ";
+ $text .= "".$cat['d_count']." ".$cat['d_requests']." ".e_date::strftime('%H:%M %d-%m-%Y',$cat['d_last'])." ";
$text .= " ";
return $text;
}
diff --git a/e107_plugins/faqs/faqs.php b/e107_plugins/faqs/faqs.php
index 5543e884a..f2e1396d9 100644
--- a/e107_plugins/faqs/faqs.php
+++ b/e107_plugins/faqs/faqs.php
@@ -81,7 +81,7 @@ if (isset($_POST['faq_submit']))
$data = $tp->toDB($_POST['data']);
$count = ($sql->count("faqs", "(*)", "WHERE faq_parent='".intval($_POST['faq_parent'])."' ") + 1);
- $sql->insert("faqs", " 0, '".$_POST['faq_parent']."', '$faq_question', '$data', '".filter_var($_POST['faq_comment'], FILTER_SANITIZE_STRING)."', '".time()."', '".USERID."', '".$count."' ");
+ $sql->insert("faqs", " 0, '".$_POST['faq_parent']."', '$faq_question', '$data', '".e107::getParser()->filter($_POST['faq_comment'], 'str')."', '".time()."', '".USERID."', '".$count."' ");
$message = FAQ_ADLAN_32;
diff --git a/e107_plugins/featurebox/e_shortcode.php b/e107_plugins/featurebox/e_shortcode.php
index 4b089792f..be4ce7820 100644
--- a/e107_plugins/featurebox/e_shortcode.php
+++ b/e107_plugins/featurebox/e_shortcode.php
@@ -151,7 +151,7 @@ class featurebox_shortcodes// must match the plugin's folder name. ie. [PLUGIN_F
{
$ctemplate = $mod;
}
- parse_str($parm, $parm);
+ parse_str((string) $parm, $parm);
$category = $this->getCategoryModel($ctemplate);
diff --git a/e107_plugins/forum/forum_stats.php b/e107_plugins/forum/forum_stats.php
index 5b2401dbb..ef7daffad 100644
--- a/e107_plugins/forum/forum_stats.php
+++ b/e107_plugins/forum/forum_stats.php
@@ -65,6 +65,7 @@ class forumStats
$firstpost = $sql->select('forum_post', 'post_datestamp', 'post_datestamp > 0 ORDER BY post_datestamp ASC LIMIT 0,1', 'default');
$fp = $sql->fetch();
+ $fp = is_array($fp) ? $fp : array();
$open_ds = (int) varset($fp['post_datestamp']);
$open_date = $gen->convert_date($open_ds, 'long');
diff --git a/e107_plugins/list_new/list_class.php b/e107_plugins/list_new/list_class.php
index f3d2263e6..1e4ee513a 100644
--- a/e107_plugins/list_new/list_class.php
+++ b/e107_plugins/list_new/list_class.php
@@ -727,14 +727,14 @@ class listclass
if($thisday == $current_day)
{
$datepreftoday = $this->list_pref[$this->mode."_datestyletoday"];
- return strftime($datepreftoday, $datestamp);
+ return e_date::strftime($datepreftoday, $datestamp);
}
}
}
//else use default date style
$datepref = $this->list_pref[$this->mode."_datestyle"];
- return strftime($datepref, $datestamp);
+ return e_date::strftime($datepref, $datestamp);
}
/**
diff --git a/e107_plugins/news/news.php b/e107_plugins/news/news.php
index c9258ae63..9051405ba 100644
--- a/e107_plugins/news/news.php
+++ b/e107_plugins/news/news.php
@@ -1864,10 +1864,10 @@ class news_front
// render new date header if pref selected ...
- $thispostday = strftime("%j", $news['news_datestamp']);
+ $thispostday = e_date::strftime("%j", $news['news_datestamp']);
if ($newpostday != $thispostday && (isset($this->pref['news_newdateheader']) && $this->pref['news_newdateheader']))
{
- echo "";
+ echo "";
}
$newpostday = $thispostday;
$news['category_id'] = $news['news_category'];
diff --git a/e107_plugins/page/e_shortcode.php b/e107_plugins/page/e_shortcode.php
index 42dd72ebe..464f88e7d 100644
--- a/e107_plugins/page/e_shortcode.php
+++ b/e107_plugins/page/e_shortcode.php
@@ -85,7 +85,7 @@ class page_shortcodes extends e_shortcode
if($parm)
{
- $parm = http_build_query($parm, null, '&');
+ $parm = http_build_query($parm);
}
else
{
diff --git a/e107_plugins/pm/pm_func.php b/e107_plugins/pm/pm_func.php
index 9e5620ad4..c871af258 100755
--- a/e107_plugins/pm/pm_func.php
+++ b/e107_plugins/pm/pm_func.php
@@ -118,6 +118,9 @@ class pmbox_manager
}
else
{
+ if (!isset($pm_info['inbox']) || !is_array($pm_info['inbox'])) $pm_info['inbox'] = [];
+ if (!isset($pm_info['outbox']) || !is_array($pm_info['outbox'])) $pm_info['outbox'] = [];
+
$pm_info['inbox']['limit'] = '';
$pm_info['outbox']['limit'] = '';
$pm_info['inbox']['filled'] = '';
diff --git a/e107_tests/composer.lock b/e107_tests/composer.lock
index ec4dac1c6..40f3a48a5 100644
--- a/e107_tests/composer.lock
+++ b/e107_tests/composer.lock
@@ -9,25 +9,26 @@
"packages-dev": [
{
"name": "behat/gherkin",
- "version": "v4.6.2",
+ "version": "v4.8.0",
"source": {
"type": "git",
"url": "https://github.com/Behat/Gherkin.git",
- "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31"
+ "reference": "2391482cd003dfdc36b679b27e9f5326bd656acd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Behat/Gherkin/zipball/51ac4500c4dc30cbaaabcd2f25694299df666a31",
- "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31",
+ "url": "https://api.github.com/repos/Behat/Gherkin/zipball/2391482cd003dfdc36b679b27e9f5326bd656acd",
+ "reference": "2391482cd003dfdc36b679b27e9f5326bd656acd",
"shasum": ""
},
"require": {
- "php": ">=5.3.1"
+ "php": "~7.2|~8.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.5|~5",
- "symfony/phpunit-bridge": "~2.7|~3|~4",
- "symfony/yaml": "~2.3|~3|~4"
+ "cucumber/cucumber": "dev-gherkin-16.0.0",
+ "phpunit/phpunit": "~8|~9",
+ "symfony/phpunit-bridge": "~3|~4|~5",
+ "symfony/yaml": "~3|~4|~5"
},
"suggest": {
"symfony/yaml": "If you want to parse features, represented in YAML files"
@@ -54,7 +55,7 @@
"homepage": "http://everzet.com"
}
],
- "description": "Gherkin DSL parser for PHP 5.3",
+ "description": "Gherkin DSL parser for PHP",
"homepage": "http://behat.org/",
"keywords": [
"BDD",
@@ -66,22 +67,22 @@
],
"support": {
"issues": "https://github.com/Behat/Gherkin/issues",
- "source": "https://github.com/Behat/Gherkin/tree/master"
+ "source": "https://github.com/Behat/Gherkin/tree/v4.8.0"
},
- "time": "2020-03-17T14:03:26+00:00"
+ "time": "2021-02-04T12:44:21+00:00"
},
{
"name": "codeception/codeception",
- "version": "4.1.13",
+ "version": "4.1.22",
"source": {
"type": "git",
"url": "https://github.com/Codeception/Codeception.git",
- "reference": "e817f83fe019ed3f9c280254b88f90cc70c3d7cf"
+ "reference": "9777ec3690ceedc4bce2ed13af7af4ca4ee3088f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Codeception/Codeception/zipball/e817f83fe019ed3f9c280254b88f90cc70c3d7cf",
- "reference": "e817f83fe019ed3f9c280254b88f90cc70c3d7cf",
+ "url": "https://api.github.com/repos/Codeception/Codeception/zipball/9777ec3690ceedc4bce2ed13af7af4ca4ee3088f",
+ "reference": "9777ec3690ceedc4bce2ed13af7af4ca4ee3088f",
"shasum": ""
},
"require": {
@@ -92,7 +93,7 @@
"ext-curl": "*",
"ext-json": "*",
"ext-mbstring": "*",
- "guzzlehttp/psr7": "~1.4",
+ "guzzlehttp/psr7": "^1.4 | ^2.0",
"php": ">=5.6.0 <9.0",
"symfony/console": ">=2.7 <6.0",
"symfony/css-selector": ">=2.7 <6.0",
@@ -101,11 +102,11 @@
"symfony/yaml": ">=2.7 <6.0"
},
"require-dev": {
- "codeception/module-asserts": "*@dev",
- "codeception/module-cli": "*@dev",
- "codeception/module-db": "*@dev",
- "codeception/module-filesystem": "*@dev",
- "codeception/module-phpbrowser": "*@dev",
+ "codeception/module-asserts": "1.*@dev",
+ "codeception/module-cli": "1.*@dev",
+ "codeception/module-db": "1.*@dev",
+ "codeception/module-filesystem": "1.*@dev",
+ "codeception/module-phpbrowser": "1.*@dev",
"codeception/specify": "~0.3",
"codeception/util-universalframework": "*@dev",
"monolog/monolog": "~1.8",
@@ -155,7 +156,7 @@
],
"support": {
"issues": "https://github.com/Codeception/Codeception/issues",
- "source": "https://github.com/Codeception/Codeception/tree/4.1.13"
+ "source": "https://github.com/Codeception/Codeception/tree/4.1.22"
},
"funding": [
{
@@ -163,7 +164,7 @@
"type": "open_collective"
}
],
- "time": "2020-12-20T13:35:09+00:00"
+ "time": "2021-08-06T17:15:34+00:00"
},
{
"name": "codeception/lib-asserts",
@@ -221,20 +222,20 @@
},
{
"name": "codeception/lib-innerbrowser",
- "version": "1.3.4",
+ "version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/Codeception/lib-innerbrowser.git",
- "reference": "fd921e089147057b456ca3660de72112167e40a4"
+ "reference": "31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/fd921e089147057b456ca3660de72112167e40a4",
- "reference": "fd921e089147057b456ca3660de72112167e40a4",
+ "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2",
+ "reference": "31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2",
"shasum": ""
},
"require": {
- "codeception/codeception": "*@dev",
+ "codeception/codeception": "4.*@dev",
"ext-dom": "*",
"ext-json": "*",
"ext-mbstring": "*",
@@ -275,9 +276,9 @@
],
"support": {
"issues": "https://github.com/Codeception/lib-innerbrowser/issues",
- "source": "https://github.com/Codeception/lib-innerbrowser/tree/1.3.4"
+ "source": "https://github.com/Codeception/lib-innerbrowser/tree/1.5.1"
},
- "time": "2020-10-22T05:45:03+00:00"
+ "time": "2021-08-30T15:21:42+00:00"
},
{
"name": "codeception/module-asserts",
@@ -450,16 +451,16 @@
},
{
"name": "codeception/phpunit-wrapper",
- "version": "9.0.5",
+ "version": "9.0.6",
"source": {
"type": "git",
"url": "https://github.com/Codeception/phpunit-wrapper.git",
- "reference": "72bac7770866799e23a7dda1ac6bec2f8baccf45"
+ "reference": "b0c06abb3181eedca690170f7ed0fd26a70bfacc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/72bac7770866799e23a7dda1ac6bec2f8baccf45",
- "reference": "72bac7770866799e23a7dda1ac6bec2f8baccf45",
+ "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/b0c06abb3181eedca690170f7ed0fd26a70bfacc",
+ "reference": "b0c06abb3181eedca690170f7ed0fd26a70bfacc",
"shasum": ""
},
"require": {
@@ -468,6 +469,7 @@
},
"require-dev": {
"codeception/specify": "*",
+ "consolidation/robo": "^3.0.0-alpha3",
"vlucas/phpdotenv": "^3.0"
},
"type": "library",
@@ -492,9 +494,9 @@
"description": "PHPUnit classes used by Codeception",
"support": {
"issues": "https://github.com/Codeception/phpunit-wrapper/issues",
- "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.5"
+ "source": "https://github.com/Codeception/phpunit-wrapper/tree/9.0.6"
},
- "time": "2020-10-11T18:14:42+00:00"
+ "time": "2020-12-28T13:59:47+00:00"
},
{
"name": "codeception/stub",
@@ -601,22 +603,22 @@
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.2.0",
+ "version": "7.3.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79"
+ "reference": "7008573787b430c1c1f650e3722d9bba59967628"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79",
- "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628",
+ "reference": "7008573787b430c1c1f650e3722d9bba59967628",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/promises": "^1.4",
- "guzzlehttp/psr7": "^1.7",
+ "guzzlehttp/psr7": "^1.7 || ^2.0",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0"
},
@@ -624,6 +626,7 @@
"psr/http-client-implementation": "1.0"
},
"require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4.1",
"ext-curl": "*",
"php-http/client-integration-tests": "^3.0",
"phpunit/phpunit": "^8.5.5 || ^9.3.5",
@@ -637,7 +640,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "7.1-dev"
+ "dev-master": "7.3-dev"
}
},
"autoload": {
@@ -679,7 +682,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.2.0"
+ "source": "https://github.com/guzzle/guzzle/tree/7.3.0"
},
"funding": [
{
@@ -699,20 +702,20 @@
"type": "github"
}
],
- "time": "2020-10-10T11:47:56+00:00"
+ "time": "2021-03-23T11:33:13+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "1.4.0",
+ "version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "60d379c243457e073cff02bc323a2a86cb355631"
+ "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
- "reference": "60d379c243457e073cff02bc323a2a86cb355631",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d",
+ "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d",
"shasum": ""
},
"require": {
@@ -752,35 +755,38 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.4.0"
+ "source": "https://github.com/guzzle/promises/tree/1.4.1"
},
- "time": "2020-09-30T07:37:28+00:00"
+ "time": "2021-03-07T09:25:29+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "1.7.0",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
+ "reference": "1dc8d9cba3897165e16d12bb13d813afb1eb3fe7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
- "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/1dc8d9cba3897165e16d12bb13d813afb1eb3fe7",
+ "reference": "1dc8d9cba3897165e16d12bb13d813afb1eb3fe7",
"shasum": ""
},
"require": {
- "php": ">=5.4.0",
- "psr/http-message": "~1.0",
- "ralouphie/getallheaders": "^2.0.5 || ^3.0.0"
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0",
+ "ralouphie/getallheaders": "^3.0"
},
"provide": {
+ "psr/http-factory-implementation": "1.0",
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "ext-zlib": "*",
- "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "http-interop/http-factory-tests": "^0.9",
+ "phpunit/phpunit": "^8.5.8 || ^9.3.10"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -788,16 +794,13 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.7-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -812,6 +815,11 @@
{
"name": "Tobias Schultze",
"homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
}
],
"description": "PSR-7 message implementation that also provides common utility methods",
@@ -827,9 +835,9 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/1.7.0"
+ "source": "https://github.com/guzzle/psr7/tree/2.0.0"
},
- "time": "2020-09-30T07:37:11+00:00"
+ "time": "2021-06-30T20:03:07+00:00"
},
{
"name": "myclabs/deep-copy",
@@ -891,16 +899,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.10.4",
+ "version": "v4.12.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e"
+ "reference": "6608f01670c3cc5079e18c1dab1104e002579143"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e",
- "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6608f01670c3cc5079e18c1dab1104e002579143",
+ "reference": "6608f01670c3cc5079e18c1dab1104e002579143",
"shasum": ""
},
"require": {
@@ -941,22 +949,22 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.12.0"
},
- "time": "2020-12-20T10:01:03+00:00"
+ "time": "2021-07-21T10:44:31+00:00"
},
{
"name": "phar-io/manifest",
- "version": "2.0.1",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133"
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
- "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
"shasum": ""
},
"require": {
@@ -1001,22 +1009,22 @@
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
"issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/master"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.3"
},
- "time": "2020-06-27T14:33:11+00:00"
+ "time": "2021-07-20T11:28:43+00:00"
},
{
"name": "phar-io/version",
- "version": "3.0.4",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/phar-io/version.git",
- "reference": "e4782611070e50613683d2b9a57730e9a3ba5451"
+ "reference": "bae7c545bef187884426f042434e561ab1ddb182"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451",
- "reference": "e4782611070e50613683d2b9a57730e9a3ba5451",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182",
+ "reference": "bae7c545bef187884426f042434e561ab1ddb182",
"shasum": ""
},
"require": {
@@ -1052,9 +1060,9 @@
"description": "Library for handling version information and constraints",
"support": {
"issues": "https://github.com/phar-io/version/issues",
- "source": "https://github.com/phar-io/version/tree/3.0.4"
+ "source": "https://github.com/phar-io/version/tree/3.1.0"
},
- "time": "2020-12-13T23:18:30+00:00"
+ "time": "2021-02-23T14:00:09+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -1216,16 +1224,16 @@
},
{
"name": "phpspec/prophecy",
- "version": "1.12.2",
+ "version": "1.13.0",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "245710e971a030f42e08f4912863805570f23d39"
+ "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39",
- "reference": "245710e971a030f42e08f4912863805570f23d39",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea",
+ "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea",
"shasum": ""
},
"require": {
@@ -1277,22 +1285,22 @@
],
"support": {
"issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/1.12.2"
+ "source": "https://github.com/phpspec/prophecy/tree/1.13.0"
},
- "time": "2020-12-19T10:15:11+00:00"
+ "time": "2021-03-17T13:42:18+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.5",
+ "version": "9.2.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1"
+ "reference": "f6293e1b30a2354e8428e004689671b83871edde"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1",
- "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde",
+ "reference": "f6293e1b30a2354e8428e004689671b83871edde",
"shasum": ""
},
"require": {
@@ -1348,7 +1356,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6"
},
"funding": [
{
@@ -1356,7 +1364,7 @@
"type": "github"
}
],
- "time": "2020-11-28T06:44:49+00:00"
+ "time": "2021-03-28T07:26:59+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -1601,16 +1609,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.5.0",
+ "version": "9.5.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe"
+ "reference": "ea8c2dfb1065eb35a79b3681eee6e6fb0a6f273b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
- "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ea8c2dfb1065eb35a79b3681eee6e6fb0a6f273b",
+ "reference": "ea8c2dfb1065eb35a79b3681eee6e6fb0a6f273b",
"shasum": ""
},
"require": {
@@ -1622,7 +1630,7 @@
"ext-xml": "*",
"ext-xmlwriter": "*",
"myclabs/deep-copy": "^1.10.1",
- "phar-io/manifest": "^2.0.1",
+ "phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
"php": ">=7.3",
"phpspec/prophecy": "^1.12.1",
@@ -1640,7 +1648,7 @@
"sebastian/global-state": "^5.0.1",
"sebastian/object-enumerator": "^4.0.3",
"sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^2.3",
+ "sebastian/type": "^2.3.4",
"sebastian/version": "^3.0.2"
},
"require-dev": {
@@ -1688,7 +1696,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.0"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.9"
},
"funding": [
{
@@ -1700,31 +1708,26 @@
"type": "github"
}
],
- "time": "2020-12-04T05:05:53+00:00"
+ "time": "2021-08-31T06:47:40+00:00"
},
{
"name": "psr/container",
- "version": "1.0.0",
+ "version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=7.2.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
@@ -1737,7 +1740,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common Container Interface (PHP FIG PSR-11)",
@@ -1751,9 +1754,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/master"
+ "source": "https://github.com/php-fig/container/tree/1.1.1"
},
- "time": "2017-02-14T16:28:37+00:00"
+ "time": "2021-03-05T17:36:06+00:00"
},
{
"name": "psr/event-dispatcher",
@@ -1857,6 +1860,61 @@
},
"time": "2020-06-29T06:28:15+00:00"
},
+ {
+ "name": "psr/http-factory",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
+ "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0",
+ "psr/http-message": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory/tree/master"
+ },
+ "time": "2019-04-30T12:38:16+00:00"
+ },
{
"name": "psr/http-message",
"version": "1.0.1",
@@ -2460,16 +2518,16 @@
},
{
"name": "sebastian/global-state",
- "version": "5.0.2",
+ "version": "5.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "a90ccbddffa067b51f574dea6eb25d5680839455"
+ "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455",
- "reference": "a90ccbddffa067b51f574dea6eb25d5680839455",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49",
+ "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49",
"shasum": ""
},
"require": {
@@ -2512,7 +2570,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3"
},
"funding": [
{
@@ -2520,7 +2578,7 @@
"type": "github"
}
],
- "time": "2020-10-26T15:55:19+00:00"
+ "time": "2021-06-11T13:31:12+00:00"
},
{
"name": "sebastian/lines-of-code",
@@ -2807,20 +2865,21 @@
"type": "github"
}
],
+ "abandoned": true,
"time": "2020-09-28T06:45:17+00:00"
},
{
"name": "sebastian/type",
- "version": "2.3.1",
+ "version": "2.3.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2"
+ "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
- "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914",
+ "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914",
"shasum": ""
},
"require": {
@@ -2855,7 +2914,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/2.3.1"
+ "source": "https://github.com/sebastianbergmann/type/tree/2.3.4"
},
"funding": [
{
@@ -2863,7 +2922,7 @@
"type": "github"
}
],
- "time": "2020-10-26T13:18:59+00:00"
+ "time": "2021-06-15T12:49:02+00:00"
},
{
"name": "sebastian/version",
@@ -2920,21 +2979,22 @@
},
{
"name": "symfony/browser-kit",
- "version": "v5.2.1",
+ "version": "v5.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a"
+ "reference": "c1e3f64fcc631c96e2c5843b666db66679ced11c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a",
- "reference": "87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/c1e3f64fcc631c96e2c5843b666db66679ced11c",
+ "reference": "c1e3f64fcc631c96e2c5843b666db66679ced11c",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/dom-crawler": "^4.4|^5.0"
+ "symfony/dom-crawler": "^4.4|^5.0",
+ "symfony/polyfill-php80": "^1.16"
},
"require-dev": {
"symfony/css-selector": "^4.4|^5.0",
@@ -2968,10 +3028,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony BrowserKit Component",
+ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/browser-kit/tree/v5.2.1"
+ "source": "https://github.com/symfony/browser-kit/tree/v5.3.4"
},
"funding": [
{
@@ -2987,31 +3047,33 @@
"type": "tidelift"
}
],
- "time": "2020-12-18T08:03:05+00:00"
+ "time": "2021-07-21T12:40:44+00:00"
},
{
"name": "symfony/console",
- "version": "v5.2.1",
+ "version": "v5.3.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "47c02526c532fb381374dab26df05e7313978976"
+ "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/47c02526c532fb381374dab26df05e7313978976",
- "reference": "47c02526c532fb381374dab26df05e7313978976",
+ "url": "https://api.github.com/repos/symfony/console/zipball/8b1008344647462ae6ec57559da166c2bfa5e16a",
+ "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
"symfony/polyfill-mbstring": "~1.0",
"symfony/polyfill-php73": "^1.8",
- "symfony/polyfill-php80": "^1.15",
+ "symfony/polyfill-php80": "^1.16",
"symfony/service-contracts": "^1.1|^2",
"symfony/string": "^5.1"
},
"conflict": {
+ "psr/log": ">=3",
"symfony/dependency-injection": "<4.4",
"symfony/dotenv": "<5.1",
"symfony/event-dispatcher": "<4.4",
@@ -3019,10 +3081,10 @@
"symfony/process": "<4.4"
},
"provide": {
- "psr/log-implementation": "1.0"
+ "psr/log-implementation": "1.0|2.0"
},
"require-dev": {
- "psr/log": "~1.0",
+ "psr/log": "^1|^2",
"symfony/config": "^4.4|^5.0",
"symfony/dependency-injection": "^4.4|^5.0",
"symfony/event-dispatcher": "^4.4|^5.0",
@@ -3059,7 +3121,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Console Component",
+ "description": "Eases the creation of beautiful and testable command line interfaces",
"homepage": "https://symfony.com",
"keywords": [
"cli",
@@ -3068,7 +3130,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.2.1"
+ "source": "https://github.com/symfony/console/tree/v5.3.7"
},
"funding": [
{
@@ -3084,24 +3146,25 @@
"type": "tidelift"
}
],
- "time": "2020-12-18T08:03:05+00:00"
+ "time": "2021-08-25T20:02:16+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v5.2.1",
+ "version": "v5.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054"
+ "reference": "7fb120adc7f600a59027775b224c13a33530dd90"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/f789e7ead4c79e04ca9a6d6162fc629c89bd8054",
- "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90",
+ "reference": "7fb120adc7f600a59027775b224c13a33530dd90",
"shasum": ""
},
"require": {
- "php": ">=7.2.5"
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
"autoload": {
@@ -3130,10 +3193,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony CssSelector Component",
+ "description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v5.2.1"
+ "source": "https://github.com/symfony/css-selector/tree/v5.3.4"
},
"funding": [
{
@@ -3149,20 +3212,20 @@
"type": "tidelift"
}
],
- "time": "2020-12-08T17:02:38+00:00"
+ "time": "2021-07-21T12:38:00+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v2.2.0",
+ "version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665"
+ "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665",
- "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+ "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627",
"shasum": ""
},
"require": {
@@ -3171,7 +3234,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2-dev"
+ "dev-main": "2.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3200,7 +3263,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/master"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0"
},
"funding": [
{
@@ -3216,27 +3279,28 @@
"type": "tidelift"
}
],
- "time": "2020-09-07T11:33:47+00:00"
+ "time": "2021-03-23T23:28:01+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v5.2.1",
+ "version": "v5.3.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "ee7cf316fb0de786cfe5ae32ee79502b290c81ea"
+ "reference": "c7eef3a60ccfdd8eafe07f81652e769ac9c7146c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/ee7cf316fb0de786cfe5ae32ee79502b290c81ea",
- "reference": "ee7cf316fb0de786cfe5ae32ee79502b290c81ea",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c7eef3a60ccfdd8eafe07f81652e769ac9c7146c",
+ "reference": "c7eef3a60ccfdd8eafe07f81652e769ac9c7146c",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.15"
+ "symfony/polyfill-php80": "^1.16"
},
"conflict": {
"masterminds/html5": "<2.6"
@@ -3271,10 +3335,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony DomCrawler Component",
+ "description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v5.2.1"
+ "source": "https://github.com/symfony/dom-crawler/tree/v5.3.7"
},
"funding": [
{
@@ -3290,27 +3354,27 @@
"type": "tidelift"
}
],
- "time": "2020-12-18T08:02:46+00:00"
+ "time": "2021-08-29T19:32:13+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v5.2.1",
+ "version": "v5.3.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "1c93f7a1dff592c252574c79a8635a8a80856042"
+ "reference": "ce7b20d69c66a20939d8952b617506a44d102130"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1c93f7a1dff592c252574c79a8635a8a80856042",
- "reference": "1c93f7a1dff592c252574c79a8635a8a80856042",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ce7b20d69c66a20939d8952b617506a44d102130",
+ "reference": "ce7b20d69c66a20939d8952b617506a44d102130",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/deprecation-contracts": "^2.1",
"symfony/event-dispatcher-contracts": "^2",
- "symfony/polyfill-php80": "^1.15"
+ "symfony/polyfill-php80": "^1.16"
},
"conflict": {
"symfony/dependency-injection": "<4.4"
@@ -3320,7 +3384,7 @@
"symfony/event-dispatcher-implementation": "2.0"
},
"require-dev": {
- "psr/log": "~1.0",
+ "psr/log": "^1|^2|^3",
"symfony/config": "^4.4|^5.0",
"symfony/dependency-injection": "^4.4|^5.0",
"symfony/error-handler": "^4.4|^5.0",
@@ -3356,10 +3420,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony EventDispatcher Component",
+ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.1"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.7"
},
"funding": [
{
@@ -3375,20 +3439,20 @@
"type": "tidelift"
}
],
- "time": "2020-12-18T08:03:05+00:00"
+ "time": "2021-08-04T21:20:46+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v2.2.0",
+ "version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2"
+ "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ba7d54483095a198fa51781bc608d17e84dffa2",
- "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/69fee1ad2332a7cbab3aca13591953da9cdb7a11",
+ "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11",
"shasum": ""
},
"require": {
@@ -3401,7 +3465,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2-dev"
+ "dev-main": "2.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3438,7 +3502,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.2.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.4.0"
},
"funding": [
{
@@ -3454,24 +3518,25 @@
"type": "tidelift"
}
],
- "time": "2020-09-07T11:33:47+00:00"
+ "time": "2021-03-23T23:28:01+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.2.1",
+ "version": "v5.3.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba"
+ "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/0b9231a5922fd7287ba5b411893c0ecd2733e5ba",
- "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/a10000ada1e600d109a6c7632e9ac42e8bf2fb93",
+ "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93",
"shasum": ""
},
"require": {
- "php": ">=7.2.5"
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
"autoload": {
@@ -3496,10 +3561,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Finder Component",
+ "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.2.1"
+ "source": "https://github.com/symfony/finder/tree/v5.3.7"
},
"funding": [
{
@@ -3515,20 +3580,20 @@
"type": "tidelift"
}
],
- "time": "2020-12-08T17:02:38+00:00"
+ "time": "2021-08-04T21:20:46+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.20.0",
+ "version": "v1.23.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41"
+ "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41",
- "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce",
+ "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce",
"shasum": ""
},
"require": {
@@ -3540,7 +3605,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3578,7 +3643,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0"
},
"funding": [
{
@@ -3594,20 +3659,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-02-19T12:13:01+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.20.0",
+ "version": "v1.23.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c"
+ "reference": "16880ba9c5ebe3642d1995ab866db29270b36535"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
- "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535",
+ "reference": "16880ba9c5ebe3642d1995ab866db29270b36535",
"shasum": ""
},
"require": {
@@ -3619,7 +3684,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3659,7 +3724,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.1"
},
"funding": [
{
@@ -3675,20 +3740,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-05-27T12:26:48+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.20.0",
+ "version": "v1.23.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "727d1096295d807c309fb01a851577302394c897"
+ "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897",
- "reference": "727d1096295d807c309fb01a851577302394c897",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
+ "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
"shasum": ""
},
"require": {
@@ -3700,7 +3765,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3743,7 +3808,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0"
},
"funding": [
{
@@ -3759,20 +3824,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-02-19T12:13:01+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.20.0",
+ "version": "v1.23.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "39d483bdf39be819deabf04ec872eb0b2410b531"
+ "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531",
- "reference": "39d483bdf39be819deabf04ec872eb0b2410b531",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6",
+ "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6",
"shasum": ""
},
"require": {
@@ -3784,7 +3849,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3823,7 +3888,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1"
},
"funding": [
{
@@ -3839,20 +3904,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-05-27T12:26:48+00:00"
},
{
"name": "symfony/polyfill-php73",
- "version": "v1.20.0",
+ "version": "v1.23.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed"
+ "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed",
- "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010",
+ "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010",
"shasum": ""
},
"require": {
@@ -3861,7 +3926,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3902,7 +3967,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0"
},
"funding": [
{
@@ -3918,20 +3983,20 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-02-19T12:13:01+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.20.0",
+ "version": "v1.23.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de"
+ "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
- "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be",
+ "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be",
"shasum": ""
},
"require": {
@@ -3940,7 +4005,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.20-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3985,7 +4050,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1"
},
"funding": [
{
@@ -4001,25 +4066,25 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T14:02:19+00:00"
+ "time": "2021-07-28T13:41:28+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v2.2.0",
+ "version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1"
+ "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1",
- "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb",
+ "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "psr/container": "^1.0"
+ "psr/container": "^1.1"
},
"suggest": {
"symfony/service-implementation": ""
@@ -4027,7 +4092,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2-dev"
+ "dev-main": "2.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4064,7 +4129,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/master"
+ "source": "https://github.com/symfony/service-contracts/tree/v2.4.0"
},
"funding": [
{
@@ -4080,20 +4145,20 @@
"type": "tidelift"
}
],
- "time": "2020-09-07T11:33:47+00:00"
+ "time": "2021-04-01T10:43:52+00:00"
},
{
"name": "symfony/string",
- "version": "v5.2.1",
+ "version": "v5.3.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed"
+ "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed",
- "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed",
+ "url": "https://api.github.com/repos/symfony/string/zipball/8d224396e28d30f81969f083a58763b8b9ceb0a5",
+ "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5",
"shasum": ""
},
"require": {
@@ -4136,7 +4201,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony String component",
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
"homepage": "https://symfony.com",
"keywords": [
"grapheme",
@@ -4147,7 +4212,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.2.1"
+ "source": "https://github.com/symfony/string/tree/v5.3.7"
},
"funding": [
{
@@ -4163,20 +4228,20 @@
"type": "tidelift"
}
],
- "time": "2020-12-05T07:33:16+00:00"
+ "time": "2021-08-26T08:00:08+00:00"
},
{
"name": "symfony/yaml",
- "version": "v5.2.1",
+ "version": "v5.3.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "290ea5e03b8cf9b42c783163123f54441fb06939"
+ "reference": "4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/290ea5e03b8cf9b42c783163123f54441fb06939",
- "reference": "290ea5e03b8cf9b42c783163123f54441fb06939",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7",
+ "reference": "4500fe63dc9c6ffc32d3b1cb0448c329f9c814b7",
"shasum": ""
},
"require": {
@@ -4219,10 +4284,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Yaml Component",
+ "description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v5.2.1"
+ "source": "https://github.com/symfony/yaml/tree/v5.3.6"
},
"funding": [
{
@@ -4238,20 +4303,20 @@
"type": "tidelift"
}
],
- "time": "2020-12-08T17:02:38+00:00"
+ "time": "2021-07-29T06:20:01+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.0",
+ "version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "75a63c33a8577608444246075ea0af0d052e452a"
+ "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a",
- "reference": "75a63c33a8577608444246075ea0af0d052e452a",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
"shasum": ""
},
"require": {
@@ -4280,7 +4345,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/master"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.1"
},
"funding": [
{
@@ -4288,20 +4353,20 @@
"type": "github"
}
],
- "time": "2020-07-12T23:59:07+00:00"
+ "time": "2021-07-28T10:34:58+00:00"
},
{
"name": "twig/twig",
- "version": "v3.1.1",
+ "version": "v3.3.2",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737"
+ "reference": "21578f00e83d4a82ecfa3d50752b609f13de6790"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/b02fa41f3783a2616eccef7b92fbc2343ffed737",
- "reference": "b02fa41f3783a2616eccef7b92fbc2343ffed737",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/21578f00e83d4a82ecfa3d50752b609f13de6790",
+ "reference": "21578f00e83d4a82ecfa3d50752b609f13de6790",
"shasum": ""
},
"require": {
@@ -4316,7 +4381,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1-dev"
+ "dev-master": "3.3-dev"
}
},
"autoload": {
@@ -4352,7 +4417,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.1.1"
+ "source": "https://github.com/twigphp/Twig/tree/v3.3.2"
},
"funding": [
{
@@ -4364,34 +4429,39 @@
"type": "tidelift"
}
],
- "time": "2020-10-27T19:28:23+00:00"
+ "time": "2021-05-16T12:14:13+00:00"
},
{
"name": "webmozart/assert",
- "version": "1.9.1",
+ "version": "1.10.0",
"source": {
"type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
- "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0 || ^8.0",
+ "php": "^7.2 || ^8.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<3.9.1"
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.36 || ^7.5.13"
+ "phpunit/phpunit": "^8.5.13"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Webmozart\\Assert\\": "src/"
@@ -4414,10 +4484,10 @@
"validate"
],
"support": {
- "issues": "https://github.com/webmozart/assert/issues",
- "source": "https://github.com/webmozart/assert/tree/master"
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.10.0"
},
- "time": "2020-07-08T17:02:28+00:00"
+ "time": "2021-03-09T10:59:23+00:00"
}
],
"aliases": [],
@@ -4427,5 +4497,5 @@
"prefer-lowest": false,
"platform": [],
"platform-dev": [],
- "plugin-api-version": "2.0.0"
+ "plugin-api-version": "2.1.0"
}
diff --git a/install.php b/install.php
index 28839d6fb..12d909187 100644
--- a/install.php
+++ b/install.php
@@ -261,15 +261,6 @@ $override = array();
if(isset($_POST['previous_steps']))
{
$tmp = unserialize(base64_decode($_POST['previous_steps']));
-
- // Save unfiltered admin password (#4004) - " are transformed into "
- $tmpadminpass1 = (isset($tmp['admin']) && !empty($tmp['admin']['password'])) ? $tmp['admin']['password'] : '';
-
- $tmp = filter_var_array($tmp, FILTER_SANITIZE_STRING);
-
- // Restore unfiltered admin password
- $tmp['admin']['password'] = $tmpadminpass1;
-
$override = (isset($tmp['paths']) && isset($tmp['paths']['hash'])) ? array('site_path'=>$tmp['paths']['hash']) : array();
unset($tmp);
unset($tmpadminpass1);