>>> For those that do not understand very well the explanation of jvlad...
>>>
>>> He's suggesting to change the class struct to be an scope struct, and
>>> have a property that tells if it's a namespace or a class, and reuse
>>> the implementation of class which already works very well.
>>> The nested support is achieved afai understand through the Adjacency
>>> List algorithm... can you confirm this to me?
>>
>>
>> or just leave the organization of things to classes (with long class
>> names with a nice prefix to prevent collissions) and leave it to
>> class_alias() (and equivalent features for functions .. also with the
>> option of a compile time aliasing) to handle the aliasing.
>>
>> this removes the need for namespaces and use statements, while making it
>> possible to make class/function names short (that are long for
>> organizational and collision prevention reasons).
>
> Hi,
>
> This approach doesn't work because aliasing with class_alias() does not
> allow name conflicts:
>
> <?php
> class foo {
> function __construct(){echo 'hi',"\n";}}
> class_alias('foo', 'XMLReader');
> $a = new XMLReader;
> ?>
>
> results in:
>
> Warning: Cannot redeclare class XMLReader in
> /home/cellog/workspace/php5/test.php on line 4
>
><?php
>class foo {
>function __construct(){echo 'hi',"\n";}}
>use ::foo as XMLReader;
>$a = new XMLReader;
>?>
>
>results in:
>
>hi

I'm sorry I don't see anything related to namespaces in the sample. It looks 
like just a trick that allows to bypass restrictions imposed on 
class_alias(). If you need to provide a clear way on creating your very own 
XMLReader class in the global namespace, while the class with the same name 
is already registered by an extension, why not to create 
remove_class()/unregister_class() and/or replace_class() functions which 
will legitimate class removal/overriding?
Still not sure if it's needed at all. With namespaces, you can create your 
own little world inside your private namespace and have as many overrided 
classes as you want. Why bother with global namespace? 



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

Reply via email to