Estoy trabajando con Vistas a 2 en Drupal 6, y estoy teniendo dificultades para encontrar documentación sobre los métodos del objeto de la Vista. ¿Hay alguna función de PHP como print_r que las salidas de los métodos así como los campos?

OriginalEl autor Nick Heiner | 2009-08-17

4 Comentarios

  1. 10

    La La reflexión de la API podría ser de interés para usted (si no es una exageración). Específicamente:-

    <?php
        Reflection::export(new ReflectionClass('View'));
    ?>

    Echa un vistazo al manual para ejemplos más detallados.

    Más flexible que get_class_methods porque también se puede obtener los parámetros y comentarios.
    También práctico: get_class($object); Cuando usted está tratando con un objeto generado a partir de una clase generada, puede pasar esto en el ReflectionClass constructor. Consulte php.net/manual/en/function.get-class.php

    OriginalEl autor Gavin Gilmour

  2. 1

    Además de las funciones mencionadas por Mathachew también puede echar un vistazo a La reflexión, especialmente la ReflectionClass clase.

    $class = new ReflectionClass('YourViewClass');
    $class->getMethods();
    $class->getProperties();

    OriginalEl autor Philippe Gerber

  3. 1

    Escribí esta sencilla función que no sólo muestra los métodos de un objeto dado, sino que también muestra sus propiedades, encapsulación y alguna otra información útil, como notas de la versión si se les da.

    function TO($object){ //Test Object
                    if(!is_object($object)){
                        throw new Exception("This is not a Object"); 
                        return;
                    }
                    if(class_exists(get_class($object), true)) echo "<pre>CLASS NAME = ".get_class($object);
                    $reflection = new ReflectionClass(get_class($object));
                    echo "<br />";
                    echo $reflection->getDocComment();
    
                    echo "<br />";
    
                    $metody = $reflection->getMethods();
                    foreach($metody as $key => $value){
                        echo "<br />". $value;
                    }
    
                    echo "<br />";
    
                    $vars = $reflection->getProperties();
                    foreach($vars as $key => $value){
                        echo "<br />". $value;
                    }
                    echo "</pre>";
                }

    Para mostrar cómo funciona he creado algunos al azar clase de ejemplo. Vamos a crear una clase llamada Persona y el lugar algunas notas de la versión de justo por encima de la declaración de la clase:

            /**
             * DocNotes -  This is description of this class if given else it will display false
             */
            class Person{
                private $name;
                private $dob;
                private $height;
                private $weight;
                private static $num;
    
                function __construct($dbo, $height, $weight, $name) {
                    $this->dob = $dbo;
                    $this->height = (integer)$height;
                    $this->weight = (integer)$weight;
                    $this->name = $name;
                    self::$num++;
    
                }
                public function eat($var="", $sar=""){
                    echo $var;
                }
                public function potrzeba($var =""){
                    return $var;
                }
            }

    Ahora vamos a crear una instancia de una Persona y se envuelve con nuestra función.

        $Wictor = new Person("27.04.1987", 170, 70, "Wictor");
        TO($Wictor);

    Esta es la salida de la información sobre el nombre de la clase, parámetros y métodos, incluyendo la encapsulación de la información y el número y los nombres de los parámetros para cada método, el método de ubicación y las líneas de código donde existe. Vea el siguiente resultado:

    CLASS NAME = Person
    /**
                 * DocNotes -  This is description of this class if given else it will display false
                 */
    
    Method [  public method __construct ] {
      @@ C:\xampp\htdocs\www\kurs_php_zaawansowany\index.php 75 - 82
    
      - Parameters [4] {
        Parameter #0 [  $dbo ]
        Parameter #1 [  $height ]
        Parameter #2 [  $weight ]
        Parameter #3 [  $name ]
      }
    }
    
    Method [  public method eat ] {
      @@ C:\xampp\htdocs\www\kurs_php_zaawansowany\index.php 83 - 85
    
      - Parameters [2] {
        Parameter #0 [  $var = '' ]
        Parameter #1 [  $sar = '' ]
      }
    }
    
    Method [  public method potrzeba ] {
      @@ C:\xampp\htdocs\www\kurs_php_zaawansowany\index.php 86 - 88
    
      - Parameters [1] {
        Parameter #0 [  $var = '' ]
      }
    }
    
    
    Property [  private $name ]
    
    Property [  private $dob ]
    
    Property [  private $height ]
    
    Property [  private $weight ]
    
    Property [ private static $num ]

    Esperamos que lo encuentre útil. Saludos.

    OriginalEl autor DevWL

Dejar respuesta

Please enter your comment!
Please enter your name here