Re: back to 5.4 alpha
| From: | Derick Rethans | Date: | Thu, 12 Aug 2010 08:31:32 +0000 |
| Subject: | Re: back to 5.4 alpha | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-49415@lists.php.net to get a copy of this message | ||
(after clarification on what Zeev meant, there was a bit of a follow up
that I'm posting as reply):
On Wed, 11 Aug 2010, Zeev Suraski wrote:
> How is it different from having both options? Given enough time isn't
> it exactly the same thing? Argument verification should not be a
> customizable feature.
>
> Collecting the info (for documentation purposes and reflection) is
> something else and I think that's fine - and then the only question
> that remains is the syntax (which IIRC includes modifiers for
> strict/weak that we should probably clean up).
>
> If I understood the idea behind the patch, you want to pass on the
> argument validation function to the engine on startup. That means
> that overnight there'll be a version of PHP supporting different
> validation functions. Or am I missing something?
Well, PHP wouldn't support it directly. But it would allow a zend
extension like Xdebug to provide a strict validation function while
debugging and development. Very similar to the overloaded zend_error_cb
and var_dump() function. During production you'd obviously *not* have a
caster/strict type validator.
It seems quite clear that "you lot" don't like a strict type check;
whereas another lot don't like a casting typecast. I'd be much for your
option #3 (no scalar type hint/cast/strict check by default); but still
allow other tools to access the information that's been supplied by the
parser. That doesn't even necessarily have to be an argument
validator/cast/type check of course; but simple introspection tools that
makes marshalling data to other more type-sensitive data sources. I've
been working with MongoDB here for the past week, and that'd be such a
data source.
Derick
> At 21:38 11/08/2010, Derick Rethans wrote:
> > On Wed, 11 Aug 2010, Stas Malyshev wrote:
> >
> > > So I'd propose doing the following:
> > >
> > > 1. Moving parameter typing to a feature branch (by branching current trunk
> > and
> > > then rolling back the typing part in the trunk).
> > > 2. Starting 5.4 alpha process after that basing on trunk.
> > >
> > > Any objections to this?
> >
> > A little bit; yes. There is indeed 0 consensus for having the strict
> > typehints. However, instead of removing it altogether, and instead
> > answering every mail in this thread :P, I wrote/am writing a patch that
> > removes the hard type checks. It however keeps the parsed structures and
> > reflection API for it. In this sense, they're actually real hints. The
> > patch also adds a mechanism similariy to the zend_error_cb mechanism so
> > that extensions could override the argument type checking. As my use
> > case for strict checking is development I'd be happy to just move the
> > hard checks into an extension. I could even offer a soft check. It also
> > allows some type inference which might be useful for webservice
> > introspecition generation. I am sure SOAP might have some benefit of
> > this, and I know that at least pecl/dbus does. The patch is attached,
> > but not ready (I haven't remove the hard checks yet because things got
> > busy at work).
> >
> > Derick
> >
> > --
> > http://derickrethans.nl |
> > http://xdebug.org
> > Like Xdebug? Consider a donation:
> > http://xdebug.org/donate.php
> > twitter: @derickr and @xdebug
> >
> > --
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>
--
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug