Fast zend_parse_parameters API
| From: | Bob Weinand | Date: | Thu, 04 Sep 2014 12:23:02 +0000 |
| Subject: | Fast zend_parse_parameters API | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-77053@lists.php.net to get a copy of this message | ||
After a long time… back to our fast_zpp RFC.
Initially Dmitry proposed to have two different APIs, one for the fast version, one for current
version:
#if FAST_ZPP
/* new API */
#else
/* old style zend_parse_parameters API */
#endif
I don't really like the idea of having two different APIs, so I'd rather propose to use
one same public API for both.
That API should, depending on some compile-time flag (per file or globally in zend_API.h), either
convert to the usual variadic style function, or expand to the new fast variant of API parsing (with
directly inlining parameter type specific functions).
What do you think about having one unified API for both, instead of the current (like it's in
some places in master branch currently)?
(p.s.: The rewrite of the current API can be done safely via some PHP script I wrote)
Also, there is the question about how to structure the API; we (I and Dmitry) basically have now two
different proposals:
ZEND_PARSE_PARAMETERS_START(3, 5)
Z_PARAM_ZVAL(regex)
Z_PARAM_ZVAL(replace)
Z_PARAM_ZVAL(subject)
Z_PARAM_OPTIONAL
Z_PARAM_LONG(limit)
Z_PARAM_ZVAL_EX(zcount, 0, 1)
ZEND_PARSE_PARAMETERS_END_EX(return);
OR
zend_parse_parameters(ZPP_ZVAL(regex) ZPP_ZVAL(replace) ZPP_ZVAL(subject) ZPP_OPTIONAL
ZPP_LONG(limit) ZPP_ZVAL_EX(zcount, ZPP_BY_REF), {
return;
})
We'd like to have some discussions about what API to use for the next years. If you have some
better API, feel free to propose it.
Thanks,
Bob