Eclipse PDT、NetBeansなどのIDEでPHPの入力補完をするコードの書き方

2011年10月23日

php-logo

この記事は、Eclipse PDT、NetBeansなどのIDEでPHPの入力補完をするためのコードの書き方を紹介しています。

はじめに

Eclipse PDTやNetBeansは、そのままでもある程度のコード補完は自動でやってくれますが、PHPDocコメントを記述するとさらに賢くコード補完を行なってくれるようになります。

PHPDocコメントの書き方は、Zend Framework, PEARなど、オープンソースのパッケージの書き方を参考にするのが手っ取り早いです。
マニュアルも一読すると良いです。

https://www.phpdoc.org/docs/latest/index.html

以降より、PDTでコード補完するためのサンプルを紹介します。

目次

  1. 関数の引数で渡した変数に対してコード補完する
  2. 関数の戻り値を受け取った変数に対してコード補完する
  3. クラスのプロパティに対してコード補完する
  4. プロジェクト外にあるライブラリをコード補完する

関数の引数で渡した変数に対してコード補完する

<?php
/**
* 関数の説明
*
* @param hoge $h 引数の説明
*/
function hoge_func($h) {
	$h->
}

/**
 * クラスの説明
 */
class hoge {
	/**
	 * 関数の説明
	 */
	public function hogeFunc() {
	}
}

上記のようにPHPDocコメントを記述することで、hoge_func の引数 $h は hoge クラスのインスタンスであると認識されます。上記の例では、hoge_func関数の中で、$h-> と入力すると、hoge クラスのメンバがコード補完されます。

ret

関数の戻り値を受け取った変数に対してコード補完する

<?php
$r = hoge_func();
$r->

/**
 * クラスの説明
 */
class hoge {
	/**
	 * メソッドの説明
	 */
	public function hogeFunc() {
	}
}

/**
 * 関数の説明
 *
 * @return hoge 戻り値の説明
 */
function hoge_func() {
	return new hoge();
}

上記のようにPHPDocコメントを記述することで、hoge_func の戻り値 $r は hoge クラスのインスタンスであると認識されます。メソッドの戻り値に対するPHPDocコメントの書式は下記の通りです。$r-> と入力すると、hoge クラスのメンバがコード補完されます。

ret

クラスのプロパティに対してコード補完する

<?php
/**
 * クラスの説明
 */
class hoge {
	/**
	 * プロパティの説明
	 *
	 * @var hoge2
	 */
	public $hogeProp;
	
	/**
	 * コンストラクタの説明
	 */
	public function __construct() {
		$this->hogeProp->
	}
}
/**
 * クラスの説明
 */
class hoge2 {
	/**
	 * メソッドの説明
	 */
	function hoge2Func() {
	}
}

$h = new hoge();
$h->hogeProp->

上記のようにPHPDocコメントを記述することで、hoge クラスの $hogeProp プロパティ は hoge2 クラスのインスタンスであると認識されます。hoge クラスのメソッド内で $this->hogeProp-> と入力すると、hoge2 クラスのメンバがコード補完されます。

prop1

$h->hogeProp-> と入力すると、hoge2 クラスのメンバーがコード補完されます。

prop2

プロジェクト外にあるライブラリをコード補完する

PEAR, PHPUnit, cakephpなど、外部のライブラリのコード補完を有効にするには、下記の方法があります。

  1. PHPプロジェクト内に外部のソースコードを含める。
  2. PDTのPHPインクルードパスを設定する。

1の方法はコード補完はできるようになりますが、あまり良い方法ではありません。

2の方法についてcakephpを例に紹介します。

「PHP エクスプローラー」の「PHP インクルード・パス」で右クリック>「インクルード・パス」>「インクルード・パスの構成」を選択します。

include-path1

「ライブラリー」タブの「外部ソース・フォルダーの追加」を選択します。

include-path2

cakephpライブラリのディレクトリを選択します。ここでは、cake\libsフォルダを選択しています。

include-path3

cakephpのグローバル関数 h() を入力したところです。引数や関数の説明が表示されています。もちろんF3キーで定義にジャンプすることもできます。

include-path4

-技術ブログ
-,