diff options
author | Máté Kocsis <kocsismate@woohoolabs.com> | 2021-01-26 11:50:36 +0100 |
---|---|---|
committer | Máté Kocsis <kocsismate@woohoolabs.com> | 2021-01-26 11:50:36 +0100 |
commit | 1954e5975846b3952ce1d2d6506e6d7134c89684 (patch) | |
tree | db386159cd317fce6f5f2d04fefd45b70244368f /ext/curl | |
parent | 4414fd93d06490e726dc04814ba412822170b712 (diff) | |
download | php-git-1954e5975846b3952ce1d2d6506e6d7134c89684.tar.gz |
Add support for generating class entries from stubs
Closes GH-6289
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
Diffstat (limited to 'ext/curl')
-rw-r--r-- | ext/curl/curl_file.c | 7 | ||||
-rw-r--r-- | ext/curl/curl_file.stub.php | 12 | ||||
-rw-r--r-- | ext/curl/curl_file_arginfo.h | 31 |
3 files changed, 42 insertions, 8 deletions
diff --git a/ext/curl/curl_file.c b/ext/curl/curl_file.c index aad162604a..a81239a60a 100644 --- a/ext/curl/curl_file.c +++ b/ext/curl/curl_file.c @@ -122,12 +122,7 @@ ZEND_METHOD(CURLFile, setPostFilename) void curlfile_register_class(void) { - zend_class_entry ce; - INIT_CLASS_ENTRY( ce, "CURLFile", class_CURLFile_methods ); - curl_CURLFile_class = zend_register_internal_class(&ce); + curl_CURLFile_class = register_class_CURLFile(); curl_CURLFile_class->serialize = zend_class_serialize_deny; curl_CURLFile_class->unserialize = zend_class_unserialize_deny; - zend_declare_property_string(curl_CURLFile_class, "name", sizeof("name")-1, "", ZEND_ACC_PUBLIC); - zend_declare_property_string(curl_CURLFile_class, "mime", sizeof("mime")-1, "", ZEND_ACC_PUBLIC); - zend_declare_property_string(curl_CURLFile_class, "postname", sizeof("postname")-1, "", ZEND_ACC_PUBLIC); } diff --git a/ext/curl/curl_file.stub.php b/ext/curl/curl_file.stub.php index 28a218c698..7b0c83aa2f 100644 --- a/ext/curl/curl_file.stub.php +++ b/ext/curl/curl_file.stub.php @@ -1,9 +1,19 @@ <?php -/** @generate-function-entries */ +/** + * @generate-function-entries + * @generate-class-entries + */ class CURLFile { + /** @var string */ + public $name = ""; + /** @var string */ + public $mime = ""; + /** @var string */ + public $postname = ""; + public function __construct(string $filename, ?string $mime_type = null, ?string $posted_filename = null) {} /** @return string */ diff --git a/ext/curl/curl_file_arginfo.h b/ext/curl/curl_file_arginfo.h index c745d597da..47be45ac95 100644 --- a/ext/curl/curl_file_arginfo.h +++ b/ext/curl/curl_file_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: a81720edab23748f6dce30306f5a5ffc9634da5d */ + * Stub hash: 4cdab686b39e7c4bb03bd5517a637ff25a38b04a */ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CURLFile___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) @@ -40,3 +40,32 @@ static const zend_function_entry class_CURLFile_methods[] = { ZEND_ME(CURLFile, setPostFilename, arginfo_class_CURLFile_setPostFilename, ZEND_ACC_PUBLIC) ZEND_FE_END }; + +zend_class_entry *register_class_CURLFile() +{ + zend_class_entry ce, *class_entry; + + INIT_CLASS_ENTRY(ce, "CURLFile", class_CURLFile_methods); + class_entry = zend_register_internal_class_ex(&ce, NULL); + + zval property_name_default_value; + ZVAL_EMPTY_STRING(&property_name_default_value); + zend_string *property_name_name = zend_string_init("name", sizeof("name") - 1, 1); + zend_declare_property_ex(class_entry, property_name_name, &property_name_default_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(property_name_name); + + zval property_mime_default_value; + ZVAL_EMPTY_STRING(&property_mime_default_value); + zend_string *property_mime_name = zend_string_init("mime", sizeof("mime") - 1, 1); + zend_declare_property_ex(class_entry, property_mime_name, &property_mime_default_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(property_mime_name); + + zval property_postname_default_value; + ZVAL_EMPTY_STRING(&property_postname_default_value); + zend_string *property_postname_name = zend_string_init("postname", sizeof("postname") - 1, 1); + zend_declare_property_ex(class_entry, property_postname_name, &property_postname_default_value, ZEND_ACC_PUBLIC, NULL); + zend_string_release(property_postname_name); + + return class_entry; +} + |