# Reflection API

- Thread: https://externals.io/message/2977
- Original archive: https://news-web.php.net/php.internals/2977
- Started by George Schlossnagle on 2003-06-29T19:18:34+00:00
- Messages: 2
- Reply by email to internals@lists.php.net
- More for agents: search with https://externals.io/search.md?q={query} · JSON API at https://externals.io/api · documentation at https://externals.io/llms.txt

---

## #2977 — George Schlossnagle — 2003-06-29T19:18:34+00:00

URL: https://externals.io/message/2977#2977

Here is a first implementation of the reflection api, for functions 
(class PHP_Function in you diagram)

http://www.schlossnagle.org/~george/php/reflection.diff
http://www.schlossnagle.org/~george/php/zend_reflection_api.c
http://www.schlossnagle.org/~george/php/zend_reflection_api.h

Comments?  Thoughts?
George




> Sebastian Bergmann wrote:
> > […]
>
>   I refactored it a bit:
>
>     http://www.sebastian-bergmann.de/stuff/reflection-update.png
>
>   IMHO it is essential that PHP_Field and PHP_Method implement a
>   common interface (like their counterparts from java.lang.reflect do)
>   to ease iterating through a class's members, for instance.
>
> -- 
>   Sebastian Bergmann
>   http://sebastian-bergmann.de/                 
> http://phpOpenTracker.de/
>
>          http://www.professionelle-softwareentwicklung-mit-php5.de/
>
> -- 
> PHP 5 Development Mailing List (http://www.php.net/)
> 
>
>
-- George Schlossnagle
-- Principal Consultant
-- OmniTI Computer Consulting, Inc.
-- +1.410.872.4910 x202
-- 1024D/1100A5A0 1370 F70A 9365 96C9 2F5E  56C2 B2B9 262F 1100 A5A0

---

## #3039 — Andi Gutmans — 2003-06-30T16:04:14+00:00

URL: https://externals.io/message/2977#3039 · In reply to: #2977

I must be thick. I don't quite understand how the source relates to what is 
described in the .png. Take for example the following from the api.c file:

static zend_function_entry php_function_functions[] = { 
ZEND_FE(php_function, NULL) ZEND_FE(php_function_isinternal, NULL) 
ZEND_FALIAS(isinternal, php_function_isinternal, NULL) 
ZEND_FE(php_function_isuserdefined, NULL) ZEND_FALIAS(isuserdefined, 
php_function_isinternal, NULL) ZEND_FE(php_function_getname, NULL) 
ZEND_FALIAS(getname, php_function_getname, NULL) 
ZEND_FE(php_function_getfilename, NULL) ZEND_FALIAS(getfilename, 
php_function_getfilename, NULL) ZEND_FE(php_function_getstartline, NULL) 
ZEND_FALIAS(getstartline, php_function_getstartline, NULL) 
ZEND_FE(php_function_getendline, NULL) ZEND_FALIAS(getendline, 
php_function_getendline, NULL) ZEND_FE(php_function_getdoccomment, NULL) 
ZEND_FALIAS(getdoccomment, php_function_getdoccomment, NULL) 
ZEND_FE(php_function_getstaticvariables, NULL) 
ZEND_FALIAS(getstaticvariables, php_function_getstaticvariables, NULL) 
ZEND_FE(php_function_invoke, NULL) ZEND_FALIAS(invoke, php_function_invoke, 
NULL) {NULL, NULL, NULL}


Are these functions meant to be called by the user? They are *pretty* ugly.
Can you show a small piece of example code on how this reflection API is 
supposed to be used?
Once we make sure it looks good to everyone I have no problem with you 
commiting your work.

Andi

At 03:18 PM 29/6/2003 -0400, George Schlossnagle wrote:
>Here is a first implementation of the reflection api, for functions (class 
>PHP_Function in you diagram)
>
>http://www.schlossnagle.org/~george/php/reflection.diff
>http://www.schlossnagle.org/~george/php/zend_reflection_api.c
>http://www.schlossnagle.org/~george/php/zend_reflection_api.h
>
>Comments?  Thoughts?
>George
>
>
>
>
> > […]
>-- George Schlossnagle
>-- Principal Consultant
>-- OmniTI Computer Consulting, Inc.
>-- +1.410.872.4910 x202
>-- 1024D/1100A5A0 1370 F70A 9365 96C9 2F5E  56C2 B2B9 262F 1100 A5A0
