johannes Wed Nov 23 15:47:43 2005 EDT
Modified files:
/php-src NEWS
/php-src/ext/reflection php_reflection.c
Log:
Changed reflection constants to class constants
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.2085&r2=1.2086&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2085 php-src/NEWS:1.2086
--- php-src/NEWS:1.2085 Wed Nov 23 13:08:46 2005
+++ php-src/NEWS Wed Nov 23 15:47:41 2005
@@ -10,6 +10,7 @@
(Marcus, Dmitry)
- Changed "instanceof" and "catch" operators, is_a() and is_subclass_of()
functions to not call __autoload(). (Dmitry)
+- Changed reflection constants to class constants. (Johannes)
- Added "allow_url_include" ini directive to be able to turn off remote url
code execution separately from the "allow_url_fopen" setting. (Rasmus)
- Added --enable-gcov configure option to enable C-level code coverage.
http://cvs.php.net/diff.php/php-src/ext/reflection/php_reflection.c?r1=1.192&r2=1.193&ty=u
Index: php-src/ext/reflection/php_reflection.c
diff -u php-src/ext/reflection/php_reflection.c:1.192
php-src/ext/reflection/php_reflection.c:1.193
--- php-src/ext/reflection/php_reflection.c:1.192 Mon Nov 21 05:57:28 2005
+++ php-src/ext/reflection/php_reflection.c Wed Nov 23 15:47:42 2005
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_reflection.c,v 1.192 2005/11/21 10:57:28 dmitry Exp $ */
+/* $Id: php_reflection.c,v 1.193 2005/11/23 20:47:42 johannes Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -103,6 +103,10 @@
}
\
target = intern->ptr;
\
+/* 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, (long)value TSRMLS_CC);
+
/* {{{ Smart string functions */
typedef struct _string {
char *string;
@@ -4225,12 +4229,23 @@
zend_declare_property_string(reflection_method_ptr, "name",
sizeof("name")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
zend_declare_property_string(reflection_method_ptr, "class",
sizeof("class")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "STATIC", ZEND_ACC_STATIC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "PUBLIC", ZEND_ACC_PUBLIC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "PROTECTED",
ZEND_ACC_PROTECTED);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "PRIVATE",
ZEND_ACC_PRIVATE);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "ABSTRACT",
ZEND_ACC_ABSTRACT);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "FINAL", ZEND_ACC_FINAL);
+
INIT_CLASS_ENTRY(_reflection_entry, "ReflectionClass",
reflection_class_functions);
_reflection_entry.create_object = reflection_objects_new;
reflection_class_ptr = zend_register_internal_class(&_reflection_entry
TSRMLS_CC);
reflection_register_implement(reflection_class_ptr, reflector_ptr
TSRMLS_CC);
zend_declare_property_string(reflection_class_ptr, "name",
sizeof("name")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(class, "IMPLICIT_ABSTRACT",
ZEND_ACC_IMPLICIT_ABSTRACT_CLASS);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(class, "EXPLICIT_ABSTRACT",
ZEND_ACC_EXPLICIT_ABSTRACT_CLASS);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(class, "FINAL",
ZEND_ACC_FINAL_CLASS);
+
INIT_CLASS_ENTRY(_reflection_entry, "ReflectionObject",
reflection_object_functions);
_reflection_entry.create_object = reflection_objects_new;
reflection_object_ptr =
zend_register_internal_class_ex(&_reflection_entry, reflection_class_ptr, NULL
TSRMLS_CC);
@@ -4242,31 +4257,17 @@
zend_declare_property_string(reflection_property_ptr, "name",
sizeof("name")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
zend_declare_property_string(reflection_property_ptr, "class",
sizeof("class")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(property, "STATIC",
ZEND_ACC_STATIC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(property, "PUBLIC",
ZEND_ACC_PUBLIC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(property, "PROTECTED",
ZEND_ACC_PROTECTED);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(property, "PRIVATE",
ZEND_ACC_PRIVATE);
+
INIT_CLASS_ENTRY(_reflection_entry, "ReflectionExtension",
reflection_extension_functions);
_reflection_entry.create_object = reflection_objects_new;
reflection_extension_ptr =
zend_register_internal_class(&_reflection_entry TSRMLS_CC);
reflection_register_implement(reflection_extension_ptr, reflector_ptr
TSRMLS_CC);
zend_declare_property_string(reflection_extension_ptr, "name",
sizeof("name")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
- /* Property modifiers */
- REGISTER_MAIN_LONG_CONSTANT("P_STATIC", ZEND_ACC_STATIC,
CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("P_PUBLIC", ZEND_ACC_PUBLIC,
CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("P_PROTECTED", ZEND_ACC_PROTECTED,
CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("P_PRIVATE", ZEND_ACC_PRIVATE,
CONST_PERSISTENT|CONST_CS);
-
- /* Method modifiers */
- REGISTER_MAIN_LONG_CONSTANT("M_STATIC", ZEND_ACC_STATIC,
CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("M_PUBLIC", ZEND_ACC_PUBLIC,
CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("M_PROTECTED", ZEND_ACC_PROTECTED,
CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("M_PRIVATE", ZEND_ACC_PRIVATE,
CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("M_ABSTRACT", ZEND_ACC_ABSTRACT,
CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("M_FINAL", ZEND_ACC_FINAL,
CONST_PERSISTENT|CONST_CS);
-
- /* Class modifiers */
- REGISTER_MAIN_LONG_CONSTANT("C_IMPLICIT_ABSTRACT",
ZEND_ACC_IMPLICIT_ABSTRACT_CLASS, CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("C_EXPLICIT_ABSTRACT",
ZEND_ACC_EXPLICIT_ABSTRACT_CLASS, CONST_PERSISTENT|CONST_CS);
- REGISTER_MAIN_LONG_CONSTANT("C_FINAL", ZEND_ACC_FINAL_CLASS,
CONST_PERSISTENT|CONST_CS);
-
return SUCCESS;
} /* }}} */
@@ -4275,7 +4276,7 @@
php_info_print_table_start();
php_info_print_table_header(2, "Reflection", "enabled");
- php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.192
2005/11/21 10:57:28 dmitry Exp $");
+ php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.193
2005/11/23 20:47:42 johannes Exp $");
php_info_print_table_end();
} /* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php