The PHP documentation says the following about the __call() magic method:
__call() is triggered when invoking inaccessible methods in an
How about just make all your other methods protected, and proxy them through __callStatic?
namespace test\foo;
class A
{
public static function __callStatic($method, $args)
{
echo __METHOD__ . "\n";
return call_user_func_array(__CLASS__ . '::' . $method, $args);
}
protected static function foo()
{
echo __METHOD__ . "\n";
}
}
A::foo();