summaryrefslogtreecommitdiff
path: root/ext/json
diff options
context:
space:
mode:
authorCraig Duncan <php@duncanc.co.uk>2019-08-10 12:39:53 +0100
committerCraig Duncan <duncan3dc@php.net>2019-08-10 16:04:30 +0100
commit7e7eaa0eb23fd67202ca669ff1b9e66993ba797a (patch)
treeb9d9d3a96cb3ecd7fdcd990d7de1ef1efcd51a79 /ext/json
parentae721c488dc31c59a5a05b4220564ee8dbf8fbb0 (diff)
downloadphp-git-7e7eaa0eb23fd67202ca669ff1b9e66993ba797a.tar.gz
Convert json functions arginfo to php stubs
Closes GH-4500
Diffstat (limited to 'ext/json')
-rw-r--r--ext/json/json.c22
-rw-r--r--ext/json/json.stub.php11
-rw-r--r--ext/json/json_arginfo.h20
3 files changed, 32 insertions, 21 deletions
diff --git a/ext/json/json.c b/ext/json/json.c
index 8474642266..a68e6ea342 100644
--- a/ext/json/json.c
+++ b/ext/json/json.c
@@ -29,6 +29,7 @@
#include "php_json.h"
#include "php_json_encoder.h"
#include "php_json_parser.h"
+#include "json_arginfo.h"
#include <zend_exceptions.h>
static PHP_MINFO_FUNCTION(json);
@@ -42,27 +43,6 @@ PHP_JSON_API zend_class_entry *php_json_exception_ce;
PHP_JSON_API ZEND_DECLARE_MODULE_GLOBALS(json)
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_json_encode, 0, 0, 1)
- ZEND_ARG_INFO(0, value)
- ZEND_ARG_INFO(0, options)
- ZEND_ARG_INFO(0, depth)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_json_decode, 0, 0, 1)
- ZEND_ARG_INFO(0, json)
- ZEND_ARG_INFO(0, assoc)
- ZEND_ARG_INFO(0, depth)
- ZEND_ARG_INFO(0, options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_json_last_error, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_json_last_error_msg, 0)
-ZEND_END_ARG_INFO()
-/* }}} */
-
/* {{{ json_functions[] */
static const zend_function_entry json_functions[] = {
PHP_FE(json_encode, arginfo_json_encode)
diff --git a/ext/json/json.stub.php b/ext/json/json.stub.php
new file mode 100644
index 0000000000..323cb6420d
--- /dev/null
+++ b/ext/json/json.stub.php
@@ -0,0 +1,11 @@
+<?php
+
+/** @return string|false */
+function json_encode($value, int $options = 0, int $depth = 512) {}
+
+/** @return mixed */
+function json_decode(string $json, ?bool $assoc = null, int $depth = 512, int $options = 0) {}
+
+function json_last_error(): int {}
+
+function json_last_error_msg(): string {}
diff --git a/ext/json/json_arginfo.h b/ext/json/json_arginfo.h
new file mode 100644
index 0000000000..fa0dcea5ae
--- /dev/null
+++ b/ext/json/json_arginfo.h
@@ -0,0 +1,20 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_json_encode, 0, 0, 1)
+ ZEND_ARG_INFO(0, value)
+ ZEND_ARG_TYPE_INFO(0, options, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, depth, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_json_decode, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, json, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, assoc, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, depth, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, options, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_json_last_error, 0, 0, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_json_last_error_msg, 0, 0, IS_STRING, 0)
+ZEND_END_ARG_INFO()