Setting aside difficulty of implementation, I'm coming around to the idea, though I think you could simplify it by cordoning off an entire namespace. E.g.:

A namespace at least two deep (e.g. \A\B\) may be marked 'protected' (by some method TBD). Classes and functions declared in a protected namespace can only be accessed from methods or functions inside the same namespace, or in ancestor namespaces.

E.g., if \Foo\Internal\ is protected, access of its classes/functions must originate from classes/functions defined in \Foo\, \Foo\Internal\, or \Foo\Internal\*.

This would allow something like nested classes, but obviously with a lot more 
flexibility.

In practice, plugin code sitting in, say, \MyPlugin\ could freely access \Framework\SomeClass, but not \Framework\Internal\SomeClass.

I see some value there, but there's tons of questions remaining and how to to implement the damn thing...

Steve Clay
--
http://www.mrclay.org/

On 2/28/13 1:56 AM, Jens Riisom Schultz wrote:
  * In response to the argument that php has no assembly concept:
I know this, but namespaces are as close as we get, and would effectively solve 
this.



--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to