私はZendStudioを使用してCakePHPでPHPを開発していますが、CakePHPの問題の1つは、すべてのビューが宣言されていないローカル変数を参照していることです。
したがって、たとえば、コントローラーでは、
$ this-> set( 'job'、new MyJobObject());
次に、ビューで
echo $ job-> getName();
私の問題は、タイプが不明なため、ZendStudioが$job
でオートコンプリートを実行できないことです。 IDEがオートコンプリートを実行できるように、型を宣言できるPHPDocタグがあります。たとえば、@var
タグをクラスで使用して、プロパティのタイプを定義できます。
class MyJobObject
{
/**
* @var MyStatusObject
*/
public $status;
}
ローカル変数に対してこのようなことをする方法はありますか?
1行の形式を使用する必要があります:/** @var $job MyJobObject */
一部の編集者は、逆の構文を好むことに注意してください。/** @var MyJobObject $job */
ビュー/テンプレートファイルの上で行う必要があります。
<?PHP
/* @var $job MyJobObject */
?>
両方の答えが間違っています*、 厳密に言えば:
/** @var MyJobObject $job */
正解です。型は常に最初の引数です。次に、説明を入力するか、変数自体を指定します。
リソース:
https://scrutinizer-ci.com/docs/tools/php/php-analyzer/guides/annotating_codehttps://docs.phpdoc.org/latest/references/phpdoc/ types.html
それ以外の場合、すべての最新のPHP IDEは、ほぼすべての種類のコメント構文を認識できます。
// @var
/* @var */
/** @var */
/* @var
*/
# @var
最も一般的で、最も読みやすく、最も広く受け入れられている形式は
/** @var <type> [variable [comment]] */
/**
* @var <type> [variable [comment]]
*/
PSR-5(提案) https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc.md
PSR-19(ドラフト) https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc-tags.md
*)2013年には、構文が異なっていた可能性があります。