2009-08-17 4 views
6

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

答えて

34

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

+0

SOの制限がない場合は、アップしますか?よくできました。 – mcandre

10

Reflection APIはあなたにとって興味深いかもしれません(過度でない場合)。具体的には次のとおりです。 -

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

詳しくは、マニュアルを参照してください。

+1

パラメータやコメントも取得できるので、get_class_methodsより柔軟です。 – Kris

+1

また便利です: 'get_class($ object);' 生成されたクラスから生成されたオブジェクトを扱うときに、これをReflectionClassコンストラクタに渡すことができます。 http://php.net/manual/en/function.get-class.phpを参照してください。 –

1

Mathachewに記載されている機能の他に、Reflection、特にReflectionClassクラスも参照できます。

$class = new ReflectionClass('YourViewClass'); 
$class->getMethods(); 
$class->getProperties(); 
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>"; 
      } 

どのように動作するかを示すために、私はいくつかのランダムなサンプルクラスを作成しました。人というクラスを作成し、ちょうどクラス宣言の上にいくつかのリリースノートを配置することができます:

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

は今、人のインスタンスを作成し、当社の機能とそれを包むことができます。

$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 ] 

希望すると便利です。よろしく。

関連する問題