- Affected version
- 2.2.12
When the listener cache is built, a falsy value is considered a non-valid hint.
Since
An explicit hint of
PHP:
public function getListenerCacheData()
{
$listeners = $this->finder('XF:CodeEventListener')
->whereAddOnActive(['disableProcessing' => true])
->where('active', 1)
->order(['event_id', 'execute_order', 'addon_id'])
->fetch();
$cache = [];
foreach ($listeners AS $listener)
{
$hint = $listener['hint'] ? $listener['hint'] : '_';
$cache[$listener['event_id']][$hint][] = [$listener['callback_class'], $listener['callback_method']];
}
return $cache;
}
Since
$listener
is an entity, it would also make sense to use ->
property syntax instead of an array.An explicit hint of
_
should likely rejected in the CodeEventListener
entity (just for admin edits?) to avoid surprises on the use of this sentinel value.