The various classes in Zend_Reflection
mimic the
API of PHP's Reflection API - with one
important difference. PHP's Reflection API does not
provide introspection into docblock annotation tags, nor into parameter variable
types or return types.
Zend_Reflection
analyzes method docblock annotations to
determine parameter variable types and the return type. Specifically,
the @param
and @return
annotations are used.
However, you can also check for any other annotation tags, as well as
the standard "short" and "long" descriptions.
Each reflection object in Zend_Reflection
overrides the
getDocblock()
method to return an instance of
Zend_Reflection_Docblock
. This class provides introspection
into the docblocks and annotation tags.
Zend_Reflection_File
is a new reflection class that allows
introspection of PHP files. With it, you can retrieve the classes,
functions, and global PHP code contained in the file.
Finally, the various methods that return other reflection objects allow a second parameter, the name of the reflection class to use for the returned reflection object.
Zend_Reflection_Docblock
is the heart of
Zend_Reflection
's value-add over PHP's
Reflection API. It provides the following methods:
-
getContents()
: returns the full contents of the docblock. -
getStartLine()
: returns the starting position of the docblock within the defining file. -
getEndLine()
: get last line of docblock within the defining file. -
getShortDescription()
: get the short, one-line description (usually the first line of the docblock). -
getLongDescription()
: get the long description from the docblock. -
hasTag($name)
: determine if the docblock has the given annotation tag. -
getTag($name)
: Retrieve the given annotation tag reflection object, or a booleanFALSE
if it's not present. -
getTags($filter)
: Retrieve all tags, or all tags matching the given$filter
string. The tags returned will be an array ofZend_Reflection_Docblock_Tag
objects.
Zend_Reflection_Docblock_Tag
provides reflection for
individual annotation tags. Most tags consist of only a name and a
description. In the case of some special tags, the class provides a
factory method for retrieving an instance of the appropriate class.
The following methods are defined for
Zend_Reflection_Docblock_Tag
:
-
factory($tagDocblockLine)
: instantiate the appropriate tag reflection class and return it. -
getName()
: return the annotation tag name. -
getDescription()
: return the annotation description.
Zend_Reflection_Docblock_Tag_Param
is a specialized
version of Zend_Reflection_Docblock_Tag
. The
@param
annotation tag description consists of the
parameter type, variable name, and variable description. It adds the
following methods to Zend_Reflection_Docblock_Tag
:
-
getType()
: return the parameter variable type. -
getVariableName()
: return the parameter variable name.
Like Zend_Reflection_Docblock_Tag_Param
,
Zend_Reflection_Docblock_Tag_Return
is a specialized
version of Zend_Reflection_Docblock_Tag
. The
@return
annotation tag description consists of the
return type and variable description. It adds the following method
to Zend_Reflection_Docblock_Tag
:
-
getType()
: return the return type.
Zend_Reflection_File
provides introspection into
PHP files. With it, you can introspect the classes, functions, and
bare PHP code defined in a file. It defines the following methods:
-
getFileName()
: retrieve the filename of the file being reflected. -
getStartLine()
: retrieve the starting line of the file (always "1"). -
getEndLine()
retrieve the last line / number of lines in the file. -
getDocComment($reflectionClass = 'Zend_Reflection_Docblock')
: retrive the file-level docblock reflection object. -
getClasses($reflectionClass = 'Zend_Reflection_Class')
: retrieve an array of reflection objects, one for each class defined in the file. -
getFunctions($reflectionClass = 'Zend_Reflection_Function')
: retrieve an array of reflection objects, one for each function defined in the file. -
getClass($name = null, $reflectionClass = 'Zend_Reflection_Class')
: retrieve the reflection object for a single class. -
getContents()
: retrieve the full contents of the file.
Zend_Reflection_Class
extends
ReflectionClass
, and follows its API. It adds one
additional method, getDeclaringFile()
, which may be
used to retrieve the Zend_Reflection_File
reflection
object for the defining file.
Additionally, the following methods add an additional argument for specifying the reflection class to use when fetching a reflection object:
-
getDeclaringFile($reflectionClass = 'Zend_Reflection_File')
-
getDocblock($reflectionClass = 'Zend_Reflection_Docblock')
-
getInterfaces($reflectionClass = 'Zend_Reflection_Class')
-
getMethod($reflectionClass = 'Zend_Reflection_Method')
-
getMethods($filter = -1, $reflectionClass = 'Zend_Reflection_Method')
getParentClass($reflectionClass = 'Zend_Reflection_Class')
-
getProperty($name, $reflectionClass = 'Zend_Reflection_Property')
-
getProperties($filter = -1, $reflectionClass = 'Zend_Reflection_Property')
Zend_Reflection_Extension
extends
ReflectionExtension
, and follows its API. It overrides
the following methods to add an additional argument for specifying
the reflection class to use when fetching a reflection object:
-
getFunctions($reflectionClass = 'Zend_Reflection_Function')
: retrieve an array of reflection objects representing the functions defined by the extension. -
getClasses($reflectionClass = 'Zend_Reflection_Class')
: retrieve an array of reflection objects representing the classes defined by the extension.
Zend_Reflection_Function
adds a method for retrieving
the function return type, as well as overrides several methods to
allow specifying the reflection class to use for returned reflection
objects.
-
getDocblock($reflectionClass = 'Zend_Reflection_Docblock')
: retrieve the function docblock reflection object. -
getParameters($reflectionClass = 'Zend_Reflection_Parameter')
: retrieve an array of all function parameter reflection objects. -
getReturn()
: retrieve the return type reflection object.
Zend_Reflection_Method
mirrors
Zend_Reflection_Function
, and only overrides one
additional method:
-
getParentClass($reflectionClass = 'Zend_Reflection_Class')
: retrieve the parent class reflection object.
Zend_Reflection_Parameter
adds a method for retrieving
the parameter type, as well as overrides methods to allow specifying
the reflection class to use on returned reflection objects.
-
getDeclaringClass($reflectionClass = 'Zend_Reflection_Class')
: get the declaring class of the parameter as a reflection object (if available). -
getClass($reflectionClass = 'Zend_Reflection_Class')
: get the class of the parameter as a reflection object (if available). -
getDeclaringFunction($reflectionClass = 'Zend_Reflection_Function')
: get the function of the parameter as a reflection object (if available). -
getType()
: get the parameter type.