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

 ツイート 8  シェア 1  Hatena 7

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 クラスのインスタンスであると認識されます。メソッドの引数に対するPHPDocコメントの書式は下記の通りです。

@param クラスの型 変数名 変数の説明

上記の例では、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コメントの書式は下記の通りです。

@return 戻り値の型 戻り値の説明

$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 クラスのインスタンスであると認識されます。クラスのプロパティに対するPHPDocコメントの書式は下記の通りです。

@var 変数の型

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

終わりに

まとめると、きちんとPHPDocコメントを書いていればコード補完は機能するということです。

 ツイート 8  シェア 1  Hatena 7

コメント

  1. 外部に置いてるZendFrameworkのクラス名関数名の補完方法を調べておりたどり着きました。
    参考になりました。ありがとうございます。