Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

PHPで開発が捗るリアルタイムエラーチェック

$
0
0

Pythonでも型チェックが捗ると噂をきいたのでPHPの環境構築について書きます。ちょっと眠いので簡潔に… もしわからないことがあったら回答するのでコメントで聞いて1

得られる利益

関数名を間違ってることに気付いたり
スクリーンショット 2018-07-31 01.53.12.png

変な型どうしで計算してることに気付いたり
スクリーンショット 2018-07-31 01.54.54.png

うっかり変な値をreturnしようとしたり
スクリーンショット 2018-07-31 02.01.59.png

そんな問題に編集中に気付けるよ。

画面はVimだけど、ほかのエディタでもいいよ。

事前準備

  1. PHP 7.1+
    • macOSなら brew install phpとかでもいいです (システムに最初から入ってる/usr/bin/pythonは不可)
  2. Composer
  3. COMPOSER_HOMEPATHを通す
    • PATH=$HOME/.composer/vendor/bin:$PATHみたいな行をシェルの設定ファイル(~/.bashrcとか)に書く

PHPStanのインストール

composer global require phpstan/phpstan-shim
  • 既にPsySHなどのPHP-Parserを使ったパッケージがインストール済でnikic/php-parser:3.1.5などが残存してる場合はインストールに失敗しやすいので注意
  • composer global remove psy/psysh nikic/php-parserなどで一旦外すとスムーズ
    • そのあとで composer global require psy/psyshのように入れ直す

プロジェクトの設定

Composerがベースのプロジェクトの場合は、こういうファイルを用意します。

phpstan.neon.dist
parameters:level:3bootstrap:%rootDir%/vendor/autoload.php

詳しくは@HirakuさんのPHPStanで始めるPHPのための静的解析とかを読んでください。

エディタの設定

Vim

ALEで一発です。

Emacs

flycheck-phpstanパッケージを入れてinit.elとかに設定を書いてください。

init.el
(defunmy-php-mode-hook()"My PHP-mode hook."(require'flycheck-phpstan)(flycheck-modet)(flycheck-select-checker'phpstan))(add-hook'php-mode-hook'my-php-mode-hook)

Visual Studio Code

私は使ったことはないですがvscode-phpstanってやつがあるらしいです。 (未検証)

まとめ

PHPStanの力があれば、ハイエンドなエディタなら割と簡単にIDE(なんとかストーム)に近い領域までいけるぞ。

この記事は手抜きですが、この記事を書いた人間の睡眠不足に報いるつもりのある型は https://www.pixiv.net/fanbox/creator/105589を購読するEmacsやPHPの記事を書くモチベーションになります。

脚注


  1. こう書いて実際に質問を受けた経験はあまりないのですが、わからないことやトラブルがあったら記事のコメントでもTwitterのDMでもSlackでもいいので質問してね 


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>