[prev in list] [next in list] [prev in thread] [next in thread] 

List:       zend-engine2
Subject:    ZendEngine2/RFCs/002.txt
From:       ssb () alltheweb ! com (Stig =?iso-8859-1?q?S=E6ther?= Bakken)
Date:       2001-09-08 11:42:14
[Download RAW message or body]

[Cross-posted between engine2 and pear-dev since this message mostly
touches PEAR topics.]

There are a few comments in RFC 002 (lines starting with "#") that I'd
like to get opinions on (pear-dev: check out ZendEngine2 from
cvs.zend.com, see RFCs/002.txt).

I expect some controversy around the "Name:Space:blah" syntax, so just
shoot me with it right now :-)

Also, I have not included anything about loading namespaces yet.  The
reason is that as I was writing that section, I suddenly remembered
that I never decided on how it should be done with respect to PEAR, so
some ideas around that would be welcome.  Here's my problem:

Today, PEAR basically maps between files and classes, you get the
HTML_Table class when you include "HTML/Table.php".

Introducing namespaces, it would make the most sense to change the
HTML_Table class to HTML:Table (class Table in the HTML namespace).
But that means the HTML/Table.php file would define symbols in the
"HTML" namespace, not "HTML:Table" as you might expect.

Okay, we might live with that, but what if you also have some
functions or constants in HTML/Table.php?  Since namespaces are
per-file, they'd also end up in the HTML namespace, which is
definitely what you'd be interested in (they could basically clash
with any other HTML_Something package.

I can see four ways of dealing with this:

1. Allow mid-file namespaces changes that would allow a file to
   contain:

   namespace Foo;
   class Bar ...
   namespace Foo:Bar;
   constants ...

2. Change the entire PEAR class<->file scheme to a class<->namespace
   scheme.  This would be pretty ugly, we'd end up with fully
   qualified class names such as "HTML_Table:Table" or "HTML:Table:Table".

3. Make a namespace "instantiatable" like I suggested a month or two
   ago.  This is what Perl/CPAN ended up doing, probably for the same
   reasons I'm losing hair over this. :-)

4. <your brilliant idea goes here>

Help! :-)

 - Stig

-- 
  Stig Sæther Bakken <ssb@alltheweb.com>
  Fast Search & Transfer ASA, Trondheim, Norway

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic