PHP: add macro for arg info in extension#9751
Merged
stanley-cheung merged 1 commit intogrpc:masterfrom Feb 17, 2017
Merged
Conversation
murgatroid99
approved these changes
Feb 17, 2017
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A first step to fix #8859
These macros
ZEND_BEGIN_ARG_INFO_EXare going to help us generate better documentation for the PHP PECL extension.Also broken up some long lines (just white space changes for those)
Technically instead of just using the
ZEND_ARG_INFOmacro per parameter, we can useZEND_ARG_TYPE_INFOandZEND_ARG_OBJ_INFOto even better type hint each parameter. However, there are a couple of issues.ZEND_ARG_TYPE_INFOonly supportsIS_ARRAYandIS_CALLABLEbut not scalar type likeIS_STRING,IS_LONG, etcZEND_ARG_OBJ_INFO, the error being thrown when a wrong type of argument being passed to the function changes fromInvalidArgumentExceptionto a "PHP Catchable Fatal Error" which requires a different way of handling it. So I did not do that.