2015-12-01 4 views
7

私はPHPオブジェクトをテンプレートファイルに送信しています。テンプレートファイルの上部にある(__getを使用して)オブジェクトのどのプロパティが利用可能で、それらが何であり、それらをコードヒントとして利用できるようにするのが大好きです。インスタンシエーション後に追加された魔法メソッドのプロパティを示すために使用できるPHP DocBlockはありますか?

例を示します。私のコントローラで

$obj = new Template("welcomePage"); 
$obj->title = "Welcome!"; 
$obj->render(); 

私の見解/テンプレートで:

<?php 
/** 
* @var  $obj   Template The template data wrapper 
* @property $obj->title string  The page header text 
/* ?> 
<h1><?php echo $obj->title; ?></h1> 

が働くだろう、これに似たものはありますか?私がそれを持っている方法は、私が$obj->とタイプすることを開始した場合、私が(またはチームメンバー)それぞれの利用可能なプロパティを見つけるためにテンプレートの先頭を参照する必要があるということを意味します。

テンプレートタイプごとにTemplateクラスを拡張することを検討していましたが、ページごとに文字列と配列を追加するだけで、テンプレート、部分テンプレート、および組み合わせごとに別々のクラスを作成することができるため、どちらも少し馬鹿だ。

ありがとう〜

+1

私の助言は、多くの場合魔法を使用することではなく、より多くの問題を引き起こし、利点をもたらします。 – Robert

+0

ありがとう、Robert。テンプレートタイプごとにクラスを提案しますか? – Prodikl

答えて

7

いいえ、インスタンスではなくDocBlocksドキュメントクラスです。

phpDocumentorの魔法のいくつか公開するクラスレベルの注釈タグの数を持っている、と言っ:

しかし、それをdynamicallプロパティ/メソッドでは機能しませんインスタンス間でプロパティが異なるため、実行時に追加されます。

+0

ありがとうございました。はい私はORMオブジェクトに '@ property'を広範囲に使用していましたが、私は、動的に割り当てられたオブジェクトキーに相当するものが存在することを期待していました。ありがとう! – Prodikl

関連する問題