Workaround for autoloading when using php namespace.
authordaniel <daniel.kinzler@wikimedia.de>
Thu, 24 May 2012 13:37:49 +0000 (15:37 +0200)
committerdaniel <daniel.kinzler@wikimedia.de>
Thu, 24 May 2012 17:06:54 +0000 (19:06 +0200)
commit6d55d4450b0c68ebc922d4a4a0ea69cab33ff0ef
tree1e14dffead6c058a129d1a8c73721e6f0ef0ad36
parent5ec99f4b24f7ce2bd4028d62c88d6adf44bda3f9
Workaround for autoloading when using php namespace.

This is a Workaround for PHP bug <https://bugs.php.net/bug.php?id=49143> (5.3.2. is broken, it's fixed in 5.3.6):

Strip leading backslashes from class names. When namespaces are used, leading backslashes are used to indicate
the top-level namespace, e.g. \foo\Bar. When used like this in the code, the leading backslash isn't passed to
the auto-loader ($className would be 'foo\Bar'). However, if a class is accessed using a string instead of a
class literal (e.g. $class = '\foo\Bar'; new $class()), then some versions of PHP do not strip the leading
backlash in this case, causing autoloading to fail.

amended: as per Jeroen's suggestion, used // for comments and ltrim instead of preg_replace.

Change-Id: I71e0429ed1da5c83262dbf6f989c782385af9bcb
includes/AutoLoader.php