-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I started a scratch project with this patch and working with it seems
intuitive so far.

My only question at the moment is the following, however I guess it
isn't specific to your NS patch then to Dmitry's:

My current practice to declare an interface and provide concrete
implementation was like this:

file:      Foo/Bar/Interface.php
interface: Foo_Bar_Interface

Now this gets problematic:

file:      Foo/Bar/Interface.php
namespace: Foo::Bar;
interface: Interface

The last one doesn't work, because the source actually looks like:

interface Interface {

which gives

syntax error, unexpected T_INTERFACE, expecting T_STRING

I tried something like

namespace Foo;
interface Bar::Interface;

but that gives another parser error about the ::

syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting '{'

Is there any chance for Rescue for this, instead of changing the naming
scheme?

thanks,
- - Markus

Jessie Hernandez wrote:
> Attached is a patch implementing my proposal.
>
> Basically, when inside a namespace, you must reference global classes
> using ::globalName or by having a "use ::globalName" statement. This
> allows classes inside namespaces to have the same name as internal ones
> without the need of explicitly "use"-ing them (and prevents clashes with
> new internal classes in the future). This only applies to classes,
> functions/constants will still follow the current rules, since
> __autoload does not apply to them (meaning you won't have to do things
> like ::strlen just because you're inside a namespace).
>
> Also, no errors are generated when using a class with the same name as
> an internal class, BUT there is an error if you import/alias a class
> with the same name as a global (non-internal) class. The reason for this
> is that the user has control of which global classes they're including,
> while the same might not be true of internal classes.
>
> Some tests had to be modified to support the patch, and there might be a
> need for additional tests to be included, but at least you can all try
> out the patch and see how you feel about these new rules.
>
> Please look at the patch, try it out, and let me know what you think
> about it or if there's anything that can be improved. Thanks.
>
>
> Regards,
>
> Jessie Hernandez
> Zend Certified Engineer (http://zend.com/zce.php?c=ZEND006359&r=222727282)
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHeOGK1nS0RcInK9ARAmsFAKC98h2eUH+CusL/h8X4pT5A3EH3SwCg4Jxg
M+S0xyhNEbc/BzLxSY/UO0M=
=jR9j
-----END PGP SIGNATURE-----

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

Reply via email to