Re: cvs: php-src(PHP_5_3) /ext/reflection php_reflection.c
/ext/reflection/tests ReflectionFunction_getNamespaceName.phpt reflectionClass_getNamespaceName.phpt
| From: | Lars Strojny | Date: | Wed, 25 Jun 2008 12:47:51 +0000 |
| Subject: | Re: cvs: php-src(PHP_5_3) /ext/reflection php_reflection.c /ext/reflection/tests ReflectionFunction_getNamespaceName.phpt reflectionClass_getNamespaceName.phpt |
||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-50645@lists.php.net to get a copy of this message | ||
Thank you very much!
Am Mittwoch, den 25.06.2008, 12:33 +0000 schrieb Dmitry Stogov:
> dmitry Wed Jun 25 12:33:46 2008 UTC
>
> Added files: (Branch: PHP_5_3)
> /php-src/ext/reflection/tests
> ReflectionFunction_getNamespaceName.phpt
> reflectionClass_getNamespaceName.phpt
>
> Modified files:
> /php-src/ext/reflection php_reflection.c
> Log:
> Added support for namespaces
>
>
> ‚úæÝÔm¤Þ
> pÔȪ!�http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.164.2.33.2.45.2.16&r2=1.164.2.33.2.45.2.17&diff_format=u
> Index: php-src/ext/reflection/php_reflection.c
> diff -u php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.16
> php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.17
> --- php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.16 Sat Jun 21 02:41:27 2008
> +++ php-src/ext/reflection/php_reflection.c Wed Jun 25 12:33:46 2008
> @@ -20,7 +20,7 @@
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.16 2008/06/21 02:41:27 felipe Exp $ */
> +/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.17 2008/06/25 12:33:46 dmitry Exp $ */
>
> #ifdef HAVE_CONFIG_H
> #include "config.h"
> @@ -2550,6 +2550,66 @@
> }
> /* }}} */
>
> +/* {{{ proto public bool ReflectionFunction::inNamespace()
> + Returns whether this function is defined in namespace */
> +ZEND_METHOD(reflection_function, inNamespace)
> +{
> + zval **name;
> + char *colon;
> +
> + METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0);
> + if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void
> **) &name) == FAILURE) {
> + RETURN_FALSE;
> + }
> + if (Z_TYPE_PP(name) == IS_STRING &&
> + (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) &&
> + colon > Z_STRVAL_PP(name) && *(colon-1) == ':') {
> + RETURN_TRUE;
> + }
> + RETURN_FALSE;
> +}
> +/* }}} */
> +
> +/* {{{ proto public string ReflectionFunction::getNamespaceName()
> + Returns the name of namespace where this function is defined */
> +ZEND_METHOD(reflection_function, getNamespaceName)
> +{
> + zval **name;
> + char *colon;
> +
> + METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0);
> + if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void
> **) &name) == FAILURE) {
> + RETURN_FALSE;
> + }
> + if (Z_TYPE_PP(name) == IS_STRING &&
> + (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) &&
> + colon > Z_STRVAL_PP(name) && *(colon-1) == ':') {
> + RETURN_STRINGL(Z_STRVAL_PP(name), colon - Z_STRVAL_PP(name) - 1, 1);
> + }
> + RETURN_EMPTY_STRING();
> +}
> +/* }}} */
> +
> +/* {{{ proto public string ReflectionFunction::getShortName()
> + Returns the short name of the function (without namespace part) */
> +ZEND_METHOD(reflection_function, getShortName)
> +{
> + zval **name;
> + char *colon;
> +
> + METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0);
> + if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void
> **) &name) == FAILURE) {
> + RETURN_FALSE;
> + }
> + if (Z_TYPE_PP(name) == IS_STRING &&
> + (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) &&
> + colon > Z_STRVAL_PP(name) && *(colon-1) == ':') {
> + RETURN_STRINGL(colon + 1, Z_STRLEN_PP(name) - (colon - Z_STRVAL_PP(name) + 1), 1);
> + }
> + RETURN_ZVAL(*name, 1, 0);
> +}
> +/* }}} */
> +
> /* {{{ proto public bool ReflectionMethod::isConstructor()
> Returns whether this method is the constructor */
> ZEND_METHOD(reflection_method, isConstructor)
> @@ -3760,6 +3820,66 @@
> }
> /* }}} */
>
> +/* {{{ proto public bool ReflectionClass::inNamespace()
> + Returns whether this class is defined in namespace */
> +ZEND_METHOD(reflection_class, inNamespace)
> +{
> + zval **name;
> + char *colon;
> +
> + METHOD_NOTSTATIC_NUMPARAMS(reflection_class_ptr, 0);
> + if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void
> **) &name) == FAILURE) {
> + RETURN_FALSE;
> + }
> + if (Z_TYPE_PP(name) == IS_STRING &&
> + (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) &&
> + colon > Z_STRVAL_PP(name) && *(colon-1) == ':') {
> + RETURN_TRUE;
> + }
> + RETURN_FALSE;
> +}
> +/* }}} */
> +
> +/* {{{ proto public string ReflectionClass::getNamespaceName()
> + Returns the name of namespace where this class is defined */
> +ZEND_METHOD(reflection_class, getNamespaceName)
> +{
> + zval **name;
> + char *colon;
> +
> + METHOD_NOTSTATIC_NUMPARAMS(reflection_class_ptr, 0);
> + if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void
> **) &name) == FAILURE) {
> + RETURN_FALSE;
> + }
> + if (Z_TYPE_PP(name) == IS_STRING &&
> + (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) &&
> + colon > Z_STRVAL_PP(name) && *(colon-1) == ':') {
> + RETURN_STRINGL(Z_STRVAL_PP(name), colon - Z_STRVAL_PP(name) - 1, 1);
> + }
> + RETURN_EMPTY_STRING();
> +}
> +/* }}} */
> +
> +/* {{{ proto public string ReflectionClass::getShortName()
> + Returns the short name of the class (without namespace part) */
> +ZEND_METHOD(reflection_class, getShortName)
> +{
> + zval **name;
> + char *colon;
> +
> + METHOD_NOTSTATIC_NUMPARAMS(reflection_class_ptr, 0);
> + if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void
> **) &name) == FAILURE) {
> + RETURN_FALSE;
> + }
> + if (Z_TYPE_PP(name) == IS_STRING &&
> + (colon = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) &&
> + colon > Z_STRVAL_PP(name) && *(colon-1) == ':') {
> + RETURN_STRINGL(colon + 1, Z_STRLEN_PP(name) - (colon - Z_STRVAL_PP(name) + 1), 1);
> + }
> + RETURN_ZVAL(*name, 1, 0);
> +}
> +/* }}} */
> +
> /* {{{ proto public static mixed ReflectionObject::export(mixed argument [, bool return])
> throws ReflectionException
> Exports a reflection object. Returns the output if TRUE is specified for return, printing
> it otherwise. */
> ZEND_METHOD(reflection_object, export)
> @@ -4510,6 +4630,9 @@
> ZEND_ME(reflection_function, getExtension, NULL, 0)
> ZEND_ME(reflection_function, getExtensionName, NULL, 0)
> ZEND_ME(reflection_function, isDeprecated, NULL, 0)
> + ZEND_ME(reflection_function, inNamespace, NULL, 0)
> + ZEND_ME(reflection_function, getNamespaceName, NULL, 0)
> + ZEND_ME(reflection_function, getShortName, NULL, 0)
> {NULL, NULL, NULL}
> };
>
> @@ -4699,6 +4822,9 @@
> ZEND_ME(reflection_class, implementsInterface, arginfo_reflection_class_implementsInterface,
> 0)
> ZEND_ME(reflection_class, getExtension, NULL, 0)
> ZEND_ME(reflection_class, getExtensionName, NULL, 0)
> + ZEND_ME(reflection_class, inNamespace, NULL, 0)
> + ZEND_ME(reflection_class, getNamespaceName, NULL, 0)
> + ZEND_ME(reflection_class, getShortName, NULL, 0)
> {NULL, NULL, NULL}
> };
>
> @@ -4943,7 +5069,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.164.2..33.2.45.2.16 2008/06/21 02:41:27 felipe Exp $");
> + php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v
> 1.164.2..33.2.45.2.17 2008/06/25 12:33:46 dmitry Exp $");
>
> php_info_print_table_end();
> } /* }}} */
>
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt?view=markup&rev=1.1
> Index: php-src/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt
> +++ php-src/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt
>
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/tests/reflectionClass_getNamespaceName.phpt?view=markup&rev=1.1ADb�7ôl•‘�N
> rf�
> Index: php-src/ext/reflection/tests/reflectionClass_getNamespaceName.phpt
> +++ php-src/ext/reflection/tests/reflectionClass_getNamespaceName.phpt
>
>
>
Attachment: [application/pgp-signature] Dies ist ein digital signierter Nachrichtenteil signature.asc
Attachment: [application/pgp-signature] Dies ist ein digital signierter Nachrichtenteil signature.asc