EmacsでもPHPLintで指摘して欲しいですよね。 SublimeTextには負けない。
flycheckを導入し、ESLintは使えるようになりました。次はPHPです。
flycheckのドキュメントでPHPも対応しているとのことなので、必要なものを用意しました。
phpmdを入れる
brew install phpmd php55
php55インストール時の出力に従い、Apacheが呼び出すPHPもbrewでいれたものに置き換えました。
# もともとの設定 # LoadModule php5_module libexec/apache2/libphp5.so # brewがいれたphp LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
phpcsを入れる
PEARで入れる。これもphp55インストール時の出力に従って設定を変えてからphpcsをいれる。
chmod -R ug+w /usr/local/Cellar/php55/5.5.25/lib/php pear config-set php_ini /usr/local/etc/php/5.5/php.ini system sudo pear install PHP_CodeSniffer
あと、phpmdはパスが通ったけれど、phpcsはパスが通らなかったのでlocateで探してパスを通しました。
- .zshrc
export PATH=$PATH:/usr/local/Cellar/php55/5.5.25/bin/
- init.el
zshの設定に記述したから、いらないかもしれない。/usr/local/Cellar/php55/5.5.25/bin
にパスが通れば良い。
M-! which phpcs
でphpcsのパスが出力されればパスが通った。
(dolist (dir (list "/sbin" "/usr/sbin" "/bin" "/usr/bin" ;; "/opt/local/bin" ;; "/sw/bin" "/usr/local/bin" "/usr/local/Cellar/php55/5.5.25/bin" (expand-file-name "~/.emacs.d/bin") (expand-file-name "~/bin") (expand-file-name "~/Library/Haskell/bin") ;; "/Apps/gnupack_devel-11.00/app/cygwin/cygwin/usr/local/bin" ;; "/Apps/gnupack_devel-11.00/app/cygwin/cygwin/usr/bin" ;; "/Apps/gnupack_devel-11.00/app/cygwin/cygwin/bin/" ;; "/Apps/gnupack_devel-11.00/app/cygwin/cygwin/usr/sbin/" ;; "/Apps/gnupack_devel-11.00/app/cygwin/cygwin/sbin/" )) ;; PATH と exec-path に同じ物を追加します (when (and (file-exists-p dir) (not (member dir exec-path))) (setenv "PATH" (concat dir ":" (getenv "PATH"))) (setq exec-path (append (list dir) exec-path)))) (require 'exec-path-from-shell) (when (and (memq window-system '(mac ns)) (functionp 'exec-path-from-shell-initialize)) (exec-path-from-shell-initialize) (add-hook' after-init-hook 'exec-path-from-shell-initialize))
flycheckの設定
そしてflycheckの設定として、init.el
に下記内容を追加
;; php-mode (add-hook 'php-mode-hook 'flycheck-mode)
phpファイルを開くとたくさん怒ってくれます。 ここからが本番ですね。ひたすら潰す。
editorconfigである程度はなんとかなるけども。