nlopess         Sun Nov 21 06:54:45 2004 EDT

  Modified files:              
    /phpdoc/en/language/oop5    reflection.xml 
  Log:
  update reflection documentation
  add new methods and improve an example
  
http://cvs.php.net/diff.php/phpdoc/en/language/oop5/reflection.xml?r1=1.5&r2=1.6&ty=u
Index: phpdoc/en/language/oop5/reflection.xml
diff -u phpdoc/en/language/oop5/reflection.xml:1.5 
phpdoc/en/language/oop5/reflection.xml:1.6
--- phpdoc/en/language/oop5/reflection.xml:1.5  Sat Oct  2 22:36:27 2004
+++ phpdoc/en/language/oop5/reflection.xml      Sun Nov 21 06:54:44 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.5 $ -->
+<!-- $Revision: 1.6 $ -->
  <sect1 id="language.oop5.reflection">
   <title>Reflection</title>
   <sect2 id="language.oop5.reflection.introduction">
@@ -75,7 +75,12 @@
     Method [ <internal> final private method __clone ] {
     }
 
-    Method [ <internal> <ctor> method __construct ] {
+    Method [ <internal> <ctor> public method __construct ] {
+
+      - Parameters [2] {
+        Parameter #0 [ <required> $message ]
+        Parameter #1 [ <required> $code ]
+      }
     }
 
     Method [ <internal> final public method getMessage ] {
@@ -118,25 +123,35 @@
 <?php
 class ReflectionFunction implements Reflector
 {
+    final private __clone()
     public object __construct(string name)
     public string __toString()
     public static string export()
     public string getName()
     public bool isInternal()
     public bool isUserDefined()
+    public string getName()
     public string getFileName()
     public int getStartLine()
     public int getEndLine()
     public string getDocComment()
     public array getStaticVariables()
     public mixed invoke(mixed* args)
+    public mixed invokeArgs(array args)
     public bool returnsReference()
     public ReflectionParameter[] getParameters()
+    public int getNumberOfParameters()
+    public int getNumberOfRequiredParameters()
 }
 ?>
 ]]>
     </programlisting>
    </informalexample>
+   <note>
+    <simpara>
+     <function>invokeArgs</function> was added in PHP 5.1.0.
+    </simpara>
+   </note>
    <para>
     To introspect a function, you will first have to create an instance
     of the <classname>ReflectionFunction</classname> class. You can then call
@@ -215,14 +230,17 @@
 <?php
 class ReflectionParameter implements Reflector
 {
+    final private __clone()
     public object __construct(string name)
     public string __toString()
     public static string export()
     public string getName()
+    public bool isPassedByReference()
     public ReflectionClass getClass()
     public bool allowsNull()
-    public bool isPassedByReference()
     public bool isOptional()
+    public bool isDefaultValueAvailable()
+    public mixed getDefaultValue()
 }
 ?>
 ]]>
@@ -230,7 +248,9 @@
    </informalexample>
    <note>
     <para>
-     <function>isOptional</function> was added in PHP 5.1.0.
+     <function>getDefaultValue</function>,
+     <function>isDefaultValueAvailable</function>,
+     <function>isOptional</function> were added in PHP 5.1.0.
     </para>
    </note>
    <para>
@@ -289,12 +309,14 @@
 <?php
 class ReflectionClass implements Reflector
 {
-    public __construct(string name)
+    final private __clone()
+    public object __construct(string name)
     public string __toString()
     public static string export()
     public string getName()
     public bool isInternal()
     public bool isUserDefined()
+    public bool isInstantiable()
     public string getFileName()
     public int getStartLine()
     public int getEndLine()
@@ -306,16 +328,21 @@
     public ReflectionProperty[] getProperties()
     public array getConstants()
     public mixed getConstant(string name)
-    public bool isInstantiable()
+    public ReflectionClass[] getInterfaces()
     public bool isInterface()
-    public bool isFinal()
     public bool isAbstract()
+    public bool isFinal()
     public int getModifiers()
     public bool isInstance(stdclass object)
     public stdclass newInstance(mixed* args)
-    public ReflectionClass[] getInterfaces()
     public ReflectionClass getParentClass()
     public bool isSubclassOf(ReflectionClass class)
+    public array getStaticProperties()
+    public array getDefaultProperties()
+    public bool isIterateable()
+    public bool implementsInterface(string name)
+    public ReflectionExtension getExtension()
+    public string getExtensionName()
 }
 ?>
 ]]>
@@ -361,7 +388,7 @@
 }
 
 // Create an instance of the ReflectionClass class
-$class= new ReflectionClass('Counter');
+$class = new ReflectionClass('Counter');
 
 // Print out basic information
 printf(
@@ -399,7 +426,7 @@
 
 // If this class is instantiable, create an instance
 if ($class->isInstantiable()) {
-    $counter= $class->newInstance();
+    $counter = $class->newInstance();
 
     echo '---> $counter is instance? '; 
     echo $class->isInstance($counter) ? 'yes' : 'no';
@@ -440,8 +467,10 @@
 class ReflectionMethod extends ReflectionFunction
 {
     public __construct(mixed class, string name)
+    public string __toString()
     public static string export()
     public mixed invoke(stdclass object, mixed* args)
+    public moxed invokeArgs(stdclass object, array args)
     public bool isFinal()
     public bool isAbstract()
     public bool isPublic()
@@ -449,11 +478,12 @@
     public bool isProtected()
     public bool isStatic()
     public bool isConstructor()
+    public bool isDestructor()
     public int getModifiers()
     public ReflectionClass getDeclaringClass()
 
     // Inherited from ReflectionFunction
-    public string __toString()
+    final private __clone()
     public string getName()
     public bool isInternal()
     public bool isUserDefined()
@@ -464,6 +494,8 @@
     public array getStaticVariables()
     public bool returnsReference()
     public ReflectionParameter[] getParameters()
+    public int getNumberOfParameters()
+    public int getNumberOfRequiredParameters()
 }
 ?>
 ]]>
@@ -565,6 +597,7 @@
 <?php
 class ReflectionProperty implements Reflector
 {
+    final private __clone()
     public __construct(mixed class, string name)
     public string __toString()
     public static string export()
@@ -584,7 +617,7 @@
     </programlisting>
    </informalexample>
    <para>
-    To introspect a method, you will first have to create an instance
+    To introspect a property, you will first have to create an instance
     of the <classname>ReflectionProperty</classname> class. You can then
     call any of the above methods on this instance.
    </para>
@@ -652,6 +685,7 @@
 <![CDATA[
 <?php
 class ReflectionExtension implements Reflector {
+    final private __clone()
     public __construct(string name)
     public string __toString()
     public static string export()
@@ -660,14 +694,16 @@
     public ReflectionFunction[] getFunctions()
     public array getConstants()
     public array getINIEntries()
+    public ReflectionClass[] getClasses()
+    public array getClassNames()
 }
 ?>
 ]]>
     </programlisting>
    </informalexample>
    <para>
-    To introspect a method, you will first have to create an instance
-    of the <classname>ReflectionProperty</classname> class. You can then call
+    To introspect an extension, you will first have to create an instance
+    of the <classname>ReflectionExtension</classname> class. You can then call
     any of the above methods on this instance.
    </para>
    <example>
@@ -684,15 +720,21 @@
     "Version     : %s\n" .
     "Functions   : [%d] %s\n" .
     "Constants   : [%d] %s\n" .
-    "INI entries : [%d] %s\n",
+    "INI entries : [%d] %s\n" .
+    "Classes     : [%d] %s\n",
         $ext->getName(),
         $ext->getVersion() ? $ext->getVersion() : 'NO_VERSION',
         sizeof($ext->getFunctions()),
         var_export($ext->getFunctions(), 1),
+
         sizeof($ext->getConstants()),
         var_export($ext->getConstants(), 1),
+
         sizeof($ext->getINIEntries()),
-        var_export($ext->getINIEntries(), 1)
+        var_export($ext->getINIEntries(), 1),
+
+        sizeof($ext->getClassNames()),
+        var_export($ext->getClassNames(), 1)
 );
 ?>
 ]]>

Reply via email to