mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Declare ext/reflection constants in stubs (#9111)
This commit is contained in:
parent
c854816b65
commit
e4d79ce24c
3 changed files with 242 additions and 35 deletions
|
@ -45,6 +45,9 @@
|
|||
#include "zend_smart_str.h"
|
||||
#include "zend_enum.h"
|
||||
#include "zend_fibers.h"
|
||||
|
||||
#define REFLECTION_ATTRIBUTE_IS_INSTANCEOF (1 << 1)
|
||||
|
||||
#include "php_reflection_arginfo.h"
|
||||
|
||||
/* Key used to avoid leaking addresses in ReflectionProperty::getId() */
|
||||
|
@ -115,12 +118,6 @@ PHPAPI zend_class_entry *reflection_fiber_ptr;
|
|||
target = intern->ptr; \
|
||||
} while (0)
|
||||
|
||||
/* Class constants */
|
||||
#define REGISTER_REFLECTION_CLASS_CONST_LONG(class_name, const_name, value) \
|
||||
zend_declare_class_constant_long(reflection_ ## class_name ## _ptr, const_name, sizeof(const_name)-1, (zend_long)value);
|
||||
|
||||
#define REFLECTION_ATTRIBUTE_IS_INSTANCEOF (1 << 1)
|
||||
|
||||
/* {{{ Object structure */
|
||||
|
||||
/* Struct for properties */
|
||||
|
@ -7135,8 +7132,6 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
|
|||
reflection_function_ptr = register_class_ReflectionFunction(reflection_function_abstract_ptr);
|
||||
reflection_function_ptr->create_object = reflection_objects_new;
|
||||
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(function, "IS_DEPRECATED", ZEND_ACC_DEPRECATED);
|
||||
|
||||
reflection_generator_ptr = register_class_ReflectionGenerator();
|
||||
reflection_generator_ptr->create_object = reflection_objects_new;
|
||||
|
||||
|
@ -7158,42 +7153,18 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
|
|||
reflection_method_ptr = register_class_ReflectionMethod(reflection_function_abstract_ptr);
|
||||
reflection_method_ptr->create_object = reflection_objects_new;
|
||||
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_STATIC", ZEND_ACC_STATIC);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_PUBLIC", ZEND_ACC_PUBLIC);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_PROTECTED", ZEND_ACC_PROTECTED);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_PRIVATE", ZEND_ACC_PRIVATE);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_ABSTRACT", ZEND_ACC_ABSTRACT);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_FINAL", ZEND_ACC_FINAL);
|
||||
|
||||
reflection_class_ptr = register_class_ReflectionClass(reflector_ptr);
|
||||
reflection_class_ptr->create_object = reflection_objects_new;
|
||||
|
||||
/* IS_IMPLICIT_ABSTRACT is not longer used */
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(class, "IS_IMPLICIT_ABSTRACT", ZEND_ACC_IMPLICIT_ABSTRACT_CLASS);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(class, "IS_EXPLICIT_ABSTRACT", ZEND_ACC_EXPLICIT_ABSTRACT_CLASS);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(class, "IS_FINAL", ZEND_ACC_FINAL);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(class, "IS_READONLY", ZEND_ACC_READONLY_CLASS);
|
||||
|
||||
reflection_object_ptr = register_class_ReflectionObject(reflection_class_ptr);
|
||||
reflection_object_ptr->create_object = reflection_objects_new;
|
||||
|
||||
reflection_property_ptr = register_class_ReflectionProperty(reflector_ptr);
|
||||
reflection_property_ptr->create_object = reflection_objects_new;
|
||||
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_STATIC", ZEND_ACC_STATIC);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_READONLY", ZEND_ACC_READONLY);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_PUBLIC", ZEND_ACC_PUBLIC);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_PROTECTED", ZEND_ACC_PROTECTED);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_PRIVATE", ZEND_ACC_PRIVATE);
|
||||
|
||||
reflection_class_constant_ptr = register_class_ReflectionClassConstant(reflector_ptr);
|
||||
reflection_class_constant_ptr->create_object = reflection_objects_new;
|
||||
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(class_constant, "IS_PUBLIC", ZEND_ACC_PUBLIC);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(class_constant, "IS_PROTECTED", ZEND_ACC_PROTECTED);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(class_constant, "IS_PRIVATE", ZEND_ACC_PRIVATE);
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(class_constant, "IS_FINAL", ZEND_ACC_FINAL);
|
||||
|
||||
reflection_extension_ptr = register_class_ReflectionExtension(reflector_ptr);
|
||||
reflection_extension_ptr->create_object = reflection_objects_new;
|
||||
|
||||
|
@ -7218,8 +7189,6 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
|
|||
reflection_fiber_ptr = register_class_ReflectionFiber();
|
||||
reflection_fiber_ptr->create_object = reflection_objects_new;
|
||||
|
||||
REGISTER_REFLECTION_CLASS_CONST_LONG(attribute, "IS_INSTANCEOF", REFLECTION_ATTRIBUTE_IS_INSTANCEOF);
|
||||
|
||||
REFLECTION_G(key_initialized) = 0;
|
||||
|
||||
return SUCCESS;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue