Handle ReflectionParameter::isArray() deprecation in PHP 8

This commit is contained in:
Alexander Makarov
2020-08-03 20:11:36 +03:00
parent 592ff73425
commit cf6ddbf080
2 changed files with 14 additions and 2 deletions

View File

@@ -129,7 +129,13 @@ abstract class CConsoleCommand extends CComponent
$name=$param->getName();
if(isset($options[$name]))
{
if($param->isArray())
if(version_compare(PHP_VERSION,'8.0','>=')) {
$isArray = $param->getType() && $param->getType()->getName() === 'array';
} else {
$isArray = $param->isArray();
}
if($isArray)
$params[]=is_array($options[$name]) ? $options[$name] : array($options[$name]);
elseif(!is_array($options[$name]))
$params[]=$options[$name];

View File

@@ -94,7 +94,13 @@ abstract class CAction extends CComponent implements IAction
$name=$param->getName();
if(isset($params[$name]))
{
if($param->isArray())
if(version_compare(PHP_VERSION,'8.0','>=')) {
$isArray = $param->getType() && $param->getType()->getName() === 'array';
} else {
$isArray = $param->isArray();
}
if($isArray)
$ps[]=is_array($params[$name]) ? $params[$name] : array($params[$name]);
elseif(!is_array($params[$name]))
$ps[]=$params[$name];