一畳のくつろぎタイム

このブログでは紹介する商品画像をAmazonアソシエイトより借りています。画像やリンクにはアフィリエイト広告が含まれる事があります

2017年3月30日木曜日

NetBeansでコードアシストされない件

PHPという言語は型の指定がないのだが、実際にはある。
また、クラスを利用する場合、その型がわからないとNetBeansも気づかない。
クラスを継承した場合に、親のクラスの変数の型がわからないため、コード補完がきかない

例えばクラス内にテンプレートエンジンのsmartyを作って使おうとした場合に発生する。

以下のようなコードを書きたいとする
$this->smarty->assign('value','valueの中身');

その変数自体を定義したクラスならば問題はないようだ。


継承したクラスから使用するとコード補完ができない。
親クラスの宣言時にコメントを書く
コメントで/** @var Smarty すまーてー */
require_once './Smarty/Smarty.class.php';

class MyClass {
    
    /** @var Smarty すまーてー */
    protected $smarty;
    
    function __construct() {
 $this->smarty = new Smarty();
    }
    
    function test() {
 $this->smarty->assign("a",1);
    }
}
すると子供のクラスでコード補完可能になる