Re: [PATCH] Inclusion of new constant: NS_SEPARATOR

From: Date: Thu, 18 Jun 2009 15:57:01 +0000
Subject: Re: [PATCH] Inclusion of new constant: NS_SEPARATOR
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-44359@lists.php.net to get a copy of this message
Hi Guilherme 2009/6/18 Guilherme Blanco <guilhermeblanco@gmail.com>: > Hi guys, > > > First of all, don't laugh! =D > > The idea and patch are extremely simple. > Based on recent experiments with Namespaces and FQCN thing I spoke > with Johannes a couple of days ago, I decided to dive into source and > try a possible patch. > That's my first attempt to contribution to internals. Mainly I try to > help on PHP side. I don't think we should introduce a new special constant for this, seems sort of useless to me, I know theres issues with FQCN, but I'll rather write: $ns = '\\' . $dynamic_class_name . '\\' . $blah; than: $ns = NS_SEPARATOR . $dynamic_class_name . NS_SEPARATOR . $blah; so im a -1 for introducing this in PHP, even though im using a danish keyboard that doesn't have \, but thats not a reason not to press 2 buttons at once, that you're already used to if you code. > > The idea is to create a new global constant NS_SEPARATOR to be used. I > know constants are used to represent internal values or values that > differ between different OS's, but the main idea here is to prevent > possible issues from user land and also to help people that do not > have "\" key in their keyboard (like finnish keyboards). > Here is a clear usage of this new constant: > http://www.php.net/manual/en/language.namespaces.dynamic.php#91552¿zé'r³ > 䊢yù—Ðk > > I don't really know if the file is the right one to have this > constant, but it works for me perfectly. > > > Index: Zend/zend_constants.c > =================================================================== > RCS file: /repository/ZendEngine2/zend_constants.c,v > retrieving revision 1.71.2.5.2.7.2.17 > diff -u -r1.71.2.5.2.7.2.17 zend_constants.c > --- Zend/zend_constants.c       12 Jan 2009 21:54:37 -0000 > 1.71.2.5.2.7.2.17 > +++ Zend/zend_constants.c       18 Jun 2009 15:29:52 -0000 >  -151,6 +151,13 @@ >                c.value.type = IS_BOOL; >                zend_register_constant(&c TSRMLS_CC); >        } > + > +       /* Namespace separator constant */ > +       static char nssep_str[2]; > +       nssep_str[0] = '\\'; > +       nssep_str[1] = '\0'; > + > +       REGISTER_MAIN_STRING_CONSTANT("NS_SEPARATOR", nssep_str, > CONST_PERSISTENT | CONST_CS); >  } This is most likely to break the Windows build without looking at the code any closer because of the declaring, just use: REGISTER_MAIN_STRING_CONSTANT("NS_SEPARATOR", ZEND_NS_NAME, CONST_PERSISTENT | CONST_CS); (I think it was ZEND_NS_NAME for the seperator) > > > > Cheers, > > -- > Guilherme Blanco - Web Developer > CBC - Certified Bindows Consultant > Cell Phone: +55 (16) 9215-8480 > MSN: guilhermeblanco@hotmail.com > URL: http://blog.bisna.com > São Paulo - SP/Brazil > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- regrads, Kalle Sommer Nielsen kalle@php.net

« previous php.internals (#44359) next »