8

Drupal 6 で Views 2 を使用していますが、View オブジェクトのメソッドに関するドキュメントを見つけるのに苦労しています。メソッドとフィールドを出力するprint_rのようなPHP関数はありますか?

4

4 に答える 4

35

get_class_methodsを探していると思います。この場合は、get_class_varsにも興味があるかもしれません。

于 2009-08-17T20:06:25.847 に答える
10

Reflection APIに興味があるかもしれません (やり過ぎでなければ) 。具体的には:-

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

詳細な例については、マニュアルを参照してください。

于 2009-08-17T20:09:28.303 に答える
2

Mathachew によって言及された関数に加えて、Reflection、特にReflectionClassクラスを見ることもできます。

$class = new ReflectionClass('YourViewClass');
$class->getMethods();
$class->getProperties();
于 2009-08-17T20:13:27.437 に答える
1

特定のオブジェクトのメソッドを表示するだけでなく、そのプロパティ、カプセル化、およびリリース ノートなどのその他の有用な情報も表示するこの単純な関数を作成しました。

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>";
            }

それがどのように機能するかを示すために、いくつかのランダムなサンプル クラスを作成しました。Person というクラスを作成し、クラス宣言のすぐ上にいくつかのリリース ノートを配置します。

        /**
         * 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;
            }
        }

Person のインスタンスを作成し、関数でラップします。

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

これにより、カプセル化情報、各メソッドのパラメーターの数と名前、メソッドの場所、およびそれが存在するコード行を含む、クラス名、パラメーター、およびメソッドに関する情報が出力されます。以下の出力を参照してください。

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 ]

役に立つことを願っています。よろしく。

于 2014-09-20T01:04:41.883 に答える