Looks like v2.5.3 of /libraries/Extensions.php changed its php4 check, which is good. But it also removed other code which now seems to break existing extensions – anything having a referenced var in the method arguments, for example sessions_end(&$session).
I haven’t caught this before, since my dev environment was on PHP 5.2, which does not throw the error. Reverting back to the EE2.5.2 version of Extensions.php solves it for all add-ons.
The related bug report mentions obsolete code, but more was removed than necessary, namely:
if (is_php('5'))
{
foreach($args as $k => $v)
{
$php5_args[$k] =& $args[$k];
}
}and below that
elseif ( ! empty($php5_args))
{
$this->last_call = call_user_func_array(array(&$this->OBJ[$class_name], $method), $php5_args);
}Thoughts?
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.