If no $modifier was passed to the function, malformed classes were generated because the empty parameter was converted to an empty array. This empty array always satisfied the isset and is_array conditions for the foreach loops that concatenate the $base_class and $blockname to the modifier.
I added a check before the $modifier value is converted to an array to prevent an empty array from being generated.
I went ahead and added a check on the $extra parameter as well, even though it does not present the same issue as it lacks a concatenation when it is being generated.
I also removed the lower is_array checks because by that point, if the parameter value is set it is an array.
If no
$modifier
was passed to the function, malformed classes were generated because the empty parameter was converted to an empty array. This empty array always satisfied theisset
andis_array
conditions for theforeach
loops that concatenate the$base_class
and$blockname
to the modifier.I added a check before the
$modifier
value is converted to an array to prevent an empty array from being generated.I went ahead and added a check on the
$extra
parameter as well, even though it does not present the same issue as it lacks a concatenation when it is being generated.I also removed the lower
is_array
checks because by that point, if the parameter value is set it is an array.