rafael          Sat Jun  8 14:23:24 2002 EDT

  Modified files:              
    /phpdoc-es/reference/classobj       reference.xml 
  Log:
  Translation updated to PHP 4.x
  
  
Index: phpdoc-es/reference/classobj/reference.xml
diff -u phpdoc-es/reference/classobj/reference.xml:1.2 
phpdoc-es/reference/classobj/reference.xml:1.3
--- phpdoc-es/reference/classobj/reference.xml:1.2      Mon Apr 15 20:29:47 2002
+++ phpdoc-es/reference/classobj/reference.xml  Sat Jun  8 14:23:23 2002
@@ -1,7 +1,171 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Revision: 1.3 $ -->
+<!-- EN-Revision: 1.3 Maintainer: rafael Status: ready -->
  <reference id="ref.classobj">
   <title>Funciones de Clases/Objectos</title>
-  <titleabbrev>Clases/Objectos</titleabbrev>
+  <titleabbrev>Clases/Objetos</titleabbrev>
+
+  <partintro>
+    <section id="classobj.intro">
+     &reftitle.intro;
+     <para>
+      Estas funciones permiten obtener informacion sobre clases y
+      objetos. Se puede obtener el nombre de la clase a la que
+      pertenece un objeto, asi como las propiedades de sus miembros
+      y m&eacute;todos. Usando estas funciones se puede obtener no solo
+      lo comentado en la frase anterior, tambien se puede obtener
+      la familia del objeto (p.ej. que clase est&aacute; extendiendo la
+      clase a la que pertenece el objeto)
+     </para>
+    </section>
+    <section id="classobj.examples">
+     &reftitle.examples;
+     <para>
+      En este ejemplo, definimos primero una clase base y una extensi&oacute;n
+      de esta clase. La clase base define un vegetal gen&eacute;rico, si es comestible
+      y su color. La subclase <varname>Spinach</varname> a&ntilde;ade
+      un metodo para cocinarlo y otro para saber si esta cocinado.
+     </para>
+     <para>
+      <example>
+       <title>classes.inc</title>
+       <programlisting role="php">
+<![CDATA[
+<?php
+
+// base class with member properties and methods
+class Vegetable {
+
+    var $edible;
+    var $color;
+
+    function Vegetable( $edible, $color="green" ) {
+        $this->edible = $edible;
+        $this->color = $color;
+    }
+
+    function is_edible() {
+        return $this->edible;
+    }
+
+    function what_color() {
+        return $this->color;
+    }
+    
+} // end of class Vegetable
+
+// extends the base class
+class Spinach extends Vegetable {
+
+    var $cooked = false;
+
+    function Spinach() {
+        $this->Vegetable( true, "green" );
+    }
+
+    function cook_it() {
+        $this->cooked = true;
+    }
+
+    function is_cooked() {
+        return $this->cooked;
+    }
+    
+} // end of class Spinach
+
+?>
+]]>
+       </programlisting>
+      </example>
+     </para>
+     <para>
+     Creamos 2 objetos de estas clases e imprimimos informaci&oacute;n sobre
+     ellos, incluyendo la jerarquia de clases a la que pertenecen.
+     Tambi&eacute;n definimos algunas funciones, especialmente para 
+     imprimir las variables de una manera ordenada.   
+     </para>
+     <para>
+      <example>
+       <title>test_script.php</title>
+       <programlisting role="php">
+<![CDATA[
+<pre>
+<?php
+
+include "classes.inc";
+
+// utility functions
+
+function print_vars($obj) {
+    $arr = get_object_vars($obj);
+    while (list($prop, $val) = each($arr))
+        echo "\t$prop = $val\n";
+}
+
+function print_methods($obj) {
+    $arr = get_class_methods(get_class($obj));
+    foreach ($arr as $method)
+        echo "\tfunction $method()\n";
+}
+
+function class_parentage($obj, $class) {
+    global $$obj;
+    if (is_subclass_of($$obj, $class)) {
+        echo "Object $obj belongs to class ".get_class($$obj);
+        echo " a subclass of $class\n";
+    } else {
+        echo "Object $obj does not belong to a subclass of $class\n";
+    }
+}
+
+// instantiate 2 objects
+
+$veggie = new Vegetable(true,"blue");
+$leafy = new Spinach();
+
+// print out information about objects
+echo "veggie: CLASS ".get_class($veggie)."\n";
+echo "leafy: CLASS ".get_class($leafy);
+echo ", PARENT ".get_parent_class($leafy)."\n";
+
+// show veggie properties
+echo "\nveggie: Properties\n";
+print_vars($veggie);
+
+// and leafy methods
+echo "\nleafy: Methods\n";
+print_methods($leafy);
+
+echo "\nParentage:\n";
+class_parentage("leafy", "Spinach");
+class_parentage("leafy", "Vegetable");
+?>
+</pre>
+]]>
+       </programlisting>
+      </example>
+     </para>
+     <para>
+      One important thing to note in the example above is that
+      the object <varname>$leafy</varname> is an instance of the class
+      <classname>Spinach</classname> which is a subclass of 
+      <classname>Vegetable</classname>,
+      therefore the last part of the script above will output:
+     </para>
+     <para>
+      <informalexample>
+       <programlisting>
+<![CDATA[
+       [...]
+Parentage:
+Object leafy does not belong to a subclass of Spinach
+Object leafy belongs to class spinach a subclass of Vegetable
+]]>
+       </programlisting>
+      </informalexample>
+     </para>
+    </section>
+  </partintro>
 
 &reference.classobj.functions;
 
@@ -22,5 +186,8 @@
 sgml-local-catalogs:nil
 sgml-local-ecat-files:nil
 End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
 -->
 


Reply via email to