Nearly everything about PHP namespacing is absolutely terrible.
If you use PHP namespacing and you want to use a class from the standard library, you have to use a fully qualified class name.
<?php
namespace Scaffold;
class ExceptionRouting extends \Exception {}That makes it horrific to implement namespacing in an existing project.
Also, quite a bit of PHP doesn't allow for relatively-qualified class names.
For example, say you have the namespace Scaffold, and a class Service inside of it. Outside of the Scaffold namespace, you have to refer to this class as Scaffold\Service, this is called a fully qualified class name. However, inside, you can just refer to it as Service, this is called a relatively qualified class name. However, call_user_func and many other PHP functions don't allow for relatively qualified class names. It's far too archaic.
It's impossible to dynamically import a class name into your namespace. This is horrible, as you have to fully qualify your class names if you want to import them on-condition.