ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> php-dev
php-dev
RE: [PHP-DEV] Simple Namespace Proposal
by Dmitry Stogov other posts by this author
Jul 23 2007 7:48AM messages near this date
RE: [PHP-DEV] Simple Namespace Proposal | Re: [PHP-DEV] Simple Namespace Proposal
>  -----Original Message-----
>  From: david.coallier@[...].com 
>  [mailto:david.coallier@[...].com] On Behalf Of David Coallier
>  Sent: Monday, July 23, 2007 4:31 PM
>  To: Dmitry Stogov
>  Cc: Arpad Ray; Hans Lellelid; PHP internals
>  Subject: Re: [PHP-DEV] Simple Namespace Proposal
>  
>  
>  On 7/23/07, Dmitry Stogov <dmitry@[...].com> wrote:
>  > Hi Arpad,
>  >
>  > You have to always use namespace name as prefix for acesing 
>  namespace 
>  > entities. (The only exception is direct import of calss).
>  > So expectatins in your tests are wrong.
>  >
>  > Thanks. Dmitry.
>  >
>  > > -----Original Message-----
>  > > From: Arpad Ray [mailto:arpad@[...].com]
>  > > Sent: Sunday, July 15, 2007 7:32 PM
>  > > To: Dmitry Stogov
>  > > Cc: 'Hans Lellelid'; 'PHP internals'
>  > > Subject: Re: [PHP-DEV] Simple Namespace Proposal
>  > >
>  > >
>  > > Dmitry Stogov wrote:
>  > > > The patch is already committed to the HEAD.
>  > > >
>  > > > Dmitry.
>  > > >
>  > > There seem to be some problems with importing across files. The 
>  > > tests currently in CVS are all in single files so it's not 
>  > > immediately obvious. When a namespace is declared in one file and 
>  > > imported in another, classes must be addressed absolutely 
>  either in 
>  > > the import or when used, and functions must be addressed 
>  absolutely 
>  > > when used, irrespective of imports.
>  > >
>  > > I've attached some phpt files to test this, but here's a simple
>  > > illustration:
>  > >
>  > > foo.php:
>  > > <?php
>  > > namespace foo;
>  > > function foobar() { }
>  > > class Foobaz { }
>  > > ?>
>  > >
>  > > bar.php:
>  > > <?php
>  > > import foo;
>  > > foobar(); // error
>  > > new Foobaz; // error
>  > > foo::foobar(); // ok
>  > > new foo::Foobaz; // ok
>  > >
>  > > import foo::foobar;
>  > > import foo::Foobaz;
>  > > foobar(); // error
>  > > new Foobaz; // ok
>  > >
>  > > import foo::foobar as foobar2;
>  > > foobar2(); // error
>  > > ?>
>  > >
>  > >
>  > > Arpad
>  > >
>  >
>  > --
>  > PHP Internals - PHP Runtime Development Mailing List
>  > To unsubscribe, visit: http://www.php.net/unsub.php
>  >
>  >
>  
>  Ok here are a few questions that I would like clear answers 
>  and not "Do you have a proposal? I DON"T SEE ONE, do you have 
>  a patch??. I just want a simple but clear answer.
>  
>  
>  1) Do we have unnamed namespaces available ?

What is "unnamed namespace"?
We have global namespace that contains all PHP internal function/classes and
user defined function/classes in files without namespace declaration. 

>  
>  2) In short and clear, why are braces not being used ? C++, 
>  C# uses it. (Short answer and if the answer is "Developer 
>  didn't want to do it..." just say "Usual"

We are not C++. Python doesn't use braces.
The only neediness for braces is placing several namespaces into one file,
but one of the goal of our concept is avoiding this.

>  
>  3) Do we have aliasing available ? (Ex: namespace PHP_NSX = 
>  PHP_NS1::PHP_NS2)

The import statement creates alias.
"import PHP_NS1::PHP_NS2 as PHP_NSX;" does exacly what you want.
"import PHP_NS1::PHP_NS2;" really does ""import PHP_NS1::PHP_NS2 as
PHP_NS2;".

>  
>  4) Are nested namespaces available ?
>  

No they are.

>  5) Were there any test provided with such feature commit ? If 
>  so where could I see them to use them and maybe answer my own 
>  questions (And I do not have time to read through all the 
>  patch to see if it does)

Look into Zend/tests/ns_*.phpt

>  
>  Should be ok for a first draft and this is not some sort of 
>  attack, I am really trying to compile a list of features 
>  absent and present to see what *types* of namespaces we have 
>  and how to correctly inform people on how to use them.

It is not the first namespace proposal.
I made three different concept and saw two other concepts in the past .
This one seems as most awaitble by most PHP users.

Thanks. Dmitry.

>  -- 
>  David Coallier,
>  Founder & Software Architect,
>  Agora Production (http://agoraproduction.com)
>  51.42.06.70.18
>  

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
Thread:
Dmitry Stogov
Derick Rethans
Dmitry Stogov
Dmitry Stogov
dz
David Coallier
Guilherme Blanco
Stanislav Malyshev
Dmitry Stogov
Markus Fischer
Stanislav Malyshev
Stanislav Malyshev
Stanislav Malyshev
Giedrius D
Stanislav Malyshev
Giedrius D
Stanislav Malyshev
Giedrius D
Andrew Minerd
Stanislav Malyshev
David Coallier
Chris#
Dmitry Stogov
nicobn
Chris#
Chrish
Dmitry Stogov
Andrei Zmievski
Stefan Priebsch
Stanislav Malyshev
Richard Lynch
Dmitry Stogov
Stanislav Malyshev
Andrei Zmievski
Stefan Priebsch
Stanislav Malyshev
Stefan Priebsch
Richard Lynch
Stefan Priebsch
Jani Taskinen
David Coallier
Robert Cummings
Richard Lynch
Stanislav Malyshev
Lukas Kahwe Smith
Derick Rethans
Stefan Priebsch
Stanislav Malyshev
Derick Rethans
Stanislav Malyshev
Stanislav Malyshev
Stanislav Malyshev
Dmitry Stogov
Stefan Priebsch
Dmitry Stogov
Jeremy Privett
Stanislav Malyshev
nicobn
Tony Bibbs
Stanislav Malyshev
Stefan Priebsch
David Coallier
Rich Buggy
Stanislav Malyshev
Stefan Priebsch
David Coallier
Dmitry Stogov
Andrei Zmievski
Hans Lellelid
dz
Guilherme Blanco
Alexey Zakhlestin
Stanislav Malyshev
Jeremy Privett
Dmitry Stogov
Arpad Ray
Dmitry Stogov
Stanislav Malyshev
Markus Fischer
David Coallier
Stanislav Malyshev
Brian Moon
Dmitry Stogov
Stanislav Malyshev
Brian Moon
Stanislav Malyshev
Dmitry Stogov
Stefan Walk
Dmitry Stogov
David Coallier
Dmitry Stogov
Stefan Priebsch
Stanislav Malyshev
Stefan Priebsch
Larry Garfield
Dmitry Stogov
Larry Garfield
Dmitry Stogov
Derick Rethans
Dmitry Stogov
nicobn
Sebastian Bergmann
Dmitry Stogov
nicobn
Rasmus Lerdorf
Lucas Nealan
Stefan Priebsch
Rasmus Lerdorf
Stefan Priebsch
Sebastian Bergmann
Stefan Priebsch
Dmitry Stogov
Sebastian Bergmann
Stanislav Malyshev
davidc
Stanislav Malyshev

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved