SublimeLinterがPHPについて動かない(文法チェックをしてくれない)場合の解決法

巷で話題の最高のテキストエディタ「Sublime Text 2」ですが、便利なのは多数のプラグインを簡単に追加出来ることかと思います。
その中で、HTML、CSS、JS、PHPなどのLint(文法チェック)をリアルタイム(保存時)に行ってくれるプラグインである「Sublime Linter」(GitHub)というプラグインがあります。
これを利用していて、どうもPHPだと動いてくれないという問題に遭遇しましたが、解決したのでその方法を以下に記します。
ちなみに、JavaScriptやCSSでは、nodejsの導入が必要です。そちらについては、詳しい他のサイトエントリを参照すれば簡単かと思います。(詳しい他のサイトエントリ:macのテキストエディタ Sublime Text2でJavaScriptのシンタックスエラーチェックをリアルタイムで行う方法 | clicktx::Tech::Memo)
原因その1.PHP.exeの場所をちゃんと指定できてない。
この問題は、主にPHPにパスが通っていないWindowsで起きるようです。MacなんかはPHPにパスが通っている(ターミナルで「php -v」と打ってバージョンがちゃんと返ってくる)ので、設定は必要ないようです。
詳しくは、SublimeLinterのDefault設定ファイルに詳しく書いてあるのですが、必要なことは、SublimeLinterのUser設定ファイルに、php.exeへのパスを記入するということです。(もちろん環境変数をいじってパスを通すだけでもOKなようです)
- PHPのサイトから、Windows用のPHPバイナリを落とす
- 解凍して適当な位置に配置(仮にC:\php\とします。つまり、php.exeがあるのは、C:\php\php.exe)
- Sublime Text 2を起動して、上部メニューバーから「preferences」→「Package Settings」→「Sublime Linter」→「Settings – User」を開く
- 以下のように入力して保存する
{ "sublimelinter_executable_map": { "php", "C:\\php\\php.exe" } }
原因その2.開いているPHPファイルのSyntaxがHTML5になっている
上記の原因その1については、デフォルトの設定ファイルを見れば分かるので特段躓かないかと思うのですが、次の問題はなかなか分からず四苦八苦したのですが、結構シンプルな問題でした。こちらのQ&Aサイト(Stack Overflow)を読んで解決しました。
どうやら、Sublime Text 2は、PHPファイルをHTML5のSyntaxで自動読み込みするらしく、それが原因ということのようです。ですので、コマンドメニュー(Ctrl+Shift+P)を開いて「syntax: php」と打って、syntaxをPHPに切り替えれば、ちゃんと動作します。
なお、コンソール(Ctrl+@)にて、「sublime.active_window().active_view().settings().get('syntax’)」とコマンドを打つことで、現在開いているファイルをどのSyntaxで読み込んでいるかを確認できます。
たったこれだけですが、なんでこういう動作になってるかなぁ。。。という感じでした。
ディスカッション
ピンバック & トラックバック一覧
[…] >>SublimeLinterがPHPについて動かない(文法チェックをしてくれない)場合の解 […]