Hey all, we have begun implementation of the RFC-6 (
https://github.com/silverstripe/silverstripe-framework/issues/4562) which was posted quite some time ago.
We have been hard at work to not only implement this namespacing, but also ensure that users upgrading to SilverStripe 4.0 will have the tools available to adapt their code to the changed class structure. To this effect we've developed a silverstripe-upgrader tool which users can run to automatically resolve about 90% of all changed code references.
https://github.com/silverstripe/silverstripe-upgrader. This is, itself, the tool we have used to perform the namespace addition on various parts of the framework, so hopefully it'll be well tested by the time beta is ready for public use.
For instance, renamed classes (such as ArrayList -> SilverStripe\ORM\ArrayList) will be detected within code references (such as string or class literals) and the appropriate name substitutions and/or use statements will be automatically added to user code. In cases where string literals contain values which happen to match renamed classes, but aren't actually class references, users can add a `/** @skipUpgrade */` flag before any such codeblocks to control the behaviour of the tool.
Subsequent work on namespacing will focus on the Security section, and hopefully will be available for review later this week.
Please post your feedback on the pull request above.
Thank you all for your contributions! :D
Kind regards,
Damian