Asial Blog

Recruit! Asialで一緒に働きませんか?

PHPにおすすめのエディタ(個人的に)

カテゴリ :
バックエンド(プログラミング)
タグ :
Tech
PHP
エディタ
こんにちは、中川です。
アシアルPHPスクールで講師をしたりしていますが、その際に、よく生徒から受ける質問のひとつに

「PHPにおすすめのエディタを教えてください。」



というものがあります。
ここで、私、一個人としては、フリーのPHPのエディタなら、迷わず【サクラエディタ】と答えたいところですが、ほかのエディタをじっくりとは使用したことがないので、返答が難しいところです。

授業中は、アシアルでも使っている人が多い、【秀丸】(有料ですが)、viやemacs(初心者向けでは無いと思いますが。)、【PHPエディタ】(アシアルでは使ってる人いませんが、PHP入門にはいいかなと)。
あとは、統合開発環境(IDE)ですが、【eclipse】(参考:Eclipseを使う : アシアルブログ)、【Vs.Php】(宣伝。。。アシアルでも使ってる人いるし。)あたりを挙げています。


と、まあ、比較できるほど使っていないのと、使う人の好みも様々なので、授業では「サクラエディタ」をゴリ押しするのも厳しいわけですね。しかし、生徒の中には、このブログを見てくれている人もいると思いますので、サクラエディタがいかにPHPエディタとして便利かを伝えられたらと思います。
※開発サーバでsamba上で開発している場合。samba無理なときは、viでやってますが。。。

1.シンタックス(PHP関数)ハイライト
エディタとして、シンタックスハイライト(コードの色付け)がないとはじまりません。この機能は、どのエディタにも大抵あります。初心者に限らずPHPになれた方でも、しょうもないtypoでエラーをだしたりしますよね。
サクラエディタでは、PHPの色設定ファイルがすでにありますが、設定ファイルの作成も非常に簡単です。
関数名を改行で区切ったテキストファイルを作ればいいだけなので、PHPで、以下のように簡単に作れます。

  1. <?php
  2. //(※使っているPHPエクステンションにより、使える関数が変化します)
  3. $func_list = get_defined_functions();
  4. sort($func_list["internal"]);
  5. echo implode("\n", $func_list["internal"]);
  6. ?>

あとは、PHPをやる場合は、必ずひつようになってくるHTMLと、JavaScript用の設定ファイルが、たしか同梱されていたと思いますので設定しておきます。(同梱されてなくても、Web探せばすぐ見つかると思います。)

2.コード補完
これも、どのエディタにも大抵あります。単語等を最初数文字入力してCtl+Spaceなどで残りの文字を補完して出してくれる機能です。
さらに、PHPの関数も補完対象に設定ですが、これもサクラエディタの場合、さっきのスクリプトで使ったファイルを設定してしまえばOKです。


3.キーヘルプ(単語説明)
あまり使わない関数になると、スペルや引数、戻り値で迷うことがありますね。いちいち、phpマニュアルを
見に行かなくても、単語を選択すると、ポップアップで簡単な説明を表示できます。私は【ココ】で公開されているものを使わせていただいています。



足りないものもありますが、そこはマニュアルで。
※バージョンによって引数等が変わる関数があるので、注意が必要です。

4.ctagsで関数や定数の定義位置にジャンプ
実際の開発では、フレームワークやライブラリ、共通ファイル等々、
ひとつのファイルに収まらず、いろいろなファイルを読み込んで動くのが当たり前です。他人が書いた実行ファイルを見ても、「この関数は何だよ?」なんてことが、よくあります。
そこで、ctagsを使って、一気に関数と定数のタグファイルを作ってしまいます。
サクラエディタでも、このタグファイルを使って定義位置にジャンプすることができます。
ただ、【ココ】にあるものでは、ネットワーク越しのタグファイルが作成できなかったので(私のやり方がまずかったのかもしれません)、以下のctagsのコマンドで作っています。

  1. ctags -a -R --langmap=PHP:.php.inc --php-types=c+f -n //定数なし
  2. ctags -a -R --langmap=PHP:.php.inc --php-types=c+f+d -n //定数含む

これを、プロジェクトのトップディレクトリで実行すれば、作成できます。


5.マクロ
どうしても、似たような作業がつきものですので、そういったものはマクロを作ってしまいましょう。
サクラエディタでは、JScriptを使ってマクロがつくれますので、JavaScriptを使ったことがある人には非常にありがたいですね。

私が、使っているものを何個か。
【直前の閉じていない HTML/XML タグを閉じる】

・HTMLコメント/アンエスケープ/エスケープ

  1. ///どこで見つけたか忘れた。。。
  2. // SakuraEditor + JScript macro
  3. // Author: tp+
  4. // Description: HTML comment
  5. function html_comment(){
  6.   var str = Editor.GetSelectedString(0);
  7.   str = "<!-- " + str + " -->";
  8.   Editor.InsText( str );
  9. }
  10. html_comment();
  11. //エスケープ、アンエスケープも文字を置き換える似たようなもの。

・テンプレ作成
【createTemplate.js】
ほぼサンプル作成とかテスト用にしか使ってないので、中身のテンプレは適当。。。

・などなど、ほかにも細かいのいっぱい。


と、ずらずら書いてみましたが、結局、ほかのエディタでもできるような機能ばかりですね。
エディタは最初は悩むかもしれませんが、使っているうちに、それが自分にとって一番になるようなものですから、いろいろ使って自分の気に入ったものを使えばいいと思います。
※ただ、EUC-JPやUTF-8の文字コードを扱えるエディタにしましょう。