Duplicate Checks for partial class names don't check for namespaces

Jon W

Well-known member
#1
There are three methods in XenForo which allow for partial class names to be used.

These are:
XenForo_BbCode_Formatter_Base::create
XenForo_Deferred_Abstract::create
XenForo_Controller->getHelper


All three methods use the following line of code to check whether a partial or full class name has been used:
Code:
if (strpos($class, '_') === false)
This follows the assumption that all full class names will contain an underscore. However, this assumption is not always correct if namespaces are used.

I suggest that it be replaced with the following code:
Code:
if (strpos($class, '_') === false && strpos($class, '\\') === false)
or something similar.

Thanks. :)
 

Liam W

Well-known member
#2
I'm almost certain this was reported before and marked as won't fix.

Can't remember when though. I'll see if I can find it...

Liam
 

Chris D

XenForo developer
Staff member
#4
No real plans to change this as the system is not designed with namespaces in mind; you may find this pattern in a few places.
The same thoughts still apply to these cases. We're not planning on adding further namespace support in XF 1.x.
 
Top