Re: Getting a list of registered namespaces.
| From: | Richard Quadling | Date: | Thu, 16 Jun 2011 15:37:24 +0000 |
| Subject: | Re: Getting a list of registered namespaces. | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-53333@lists.php.net to get a copy of this message | ||
On 16 June 2011 14:03, Martin Scotta <martinscotta@gmail.com> wrote:
>
> Martin Scotta
>
>
> On Thu, Jun 16, 2011 at 9:40 AM, Richard Quadling <rquadling@gmail.com>
> wrote:
>>
>> On 15 June 2011 17:23, Stas Malyshev <smalyshev@sugarcrm.com> wrote:
>> > Hi!
>> >
>> >> With pecl/http (DEV-2 branch) and the Functional extension (on github)
>> >> both creating namespaces within the extension, I think there is a
>> >> requirement for a mechanism to allow an extension to record the
>> >> namespace(s) that it has, in a similar fashion to how functions and
>> >> classes are known to core.
>> >
>> > There's no such thing as "registered namespaces", at least in the
>> > engine.
>> > Namespace is just a part of class/function name. You could enumerate
>> > classes/functions and split their names, but I'm not sure for what such
>> > list
>> > will be useful. Could you explain?
>> >
>> >> But, trawling all the classes and functions, extracting and
>> >> aggregating the namespace would really not seem to be the way to go.
>> >> And that wouldn't take into account the user defined namespaces.
>> >
>> > Again, there's no such thing as list of user defined namespaces, at
>> > runtime.
>> > You'd have to go through all classes/functions and split their names.
>> > Again,
>> > I'm not sure what would be the use of it.
>>
>> Currently, I can find the names of functions, classes and interfaces -
>> be they from an extension or userland code.
>>
>> But I can't get namespaces, or their aliases.
>>
>>
>> I'm not totally sure of any other use. That's why I was asking.
>>
>> As (or if) more extensions start to use namespaces to protect their
>> contents from name collision, we are probably going to have namespace
>> collision before long.
>>
>
> that's why naming convention are meant for?
Maybe, but because of a lack of convention on naming, we have namespaces.
It people named their classes/functions/etc with sensible long names,
containing something that was unique to their project, after doing
plenty of research for similar sounding names, we wouldn't need
namespaces.
When/if github/functional and/or pecl/http-DEV2 go live, these will be
the first 2 namespaces provided by PHP extensions (that could be in
general use).
Are you all saying that the potential for a naming-collision is negligible?
It seems so.
As I see it, a namespace is a container. Like a class acts as a
container for methods and properties, so a namespaces acts as a
container for classes, interfaces and functions, ring-fencing them to
avoid name collisions.
So it would seem appropriate to have the ability to investigate a
namespace to see what it contains and/or if it exists.
Why? For exactly the same reasons you have class_exists(),
interface_exists(), function_exists().
--
Richard Quadling
Twitter : EE : Zend : PHPDoc
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea