atomでPHP開発

atomでPHPを開発する上ではMac上に PHP および composer のインストールが不可避なようです。

atomのインストール

brew cask install atom

composerのインストール

brew install homebrew/php/composer

日本語化

apm install japanese-menu

Gitを操作できるようにする

apm install git-plus git-control git-history

コード整形用プラグイン

apm install editorconfig
apm install atom-beautify
apm install php-cs-fixer
brew install homebrew/php/php-cs-fixer
php-cs-fixer --version
PHP CS Fixer 2.2.1 by Fabien Potencier and Dariusz Ruminski

Atom側の設定

Default Beautifier:PHP-CS-Fixer

Beautify On Saveをクリックすることで保存時に自動的に整形

PHP-CS-Fixer Path

Homebrewでインストールした場合は以下のパス

/usr/local/Cellar/php-cs-fixer/2.2.1/php-cs-fixer

Level

デフォルトが「PSR-2」のようです。

CakePHPは「CakePHP の開発者はコーディング規約として下記のルールに加え、 PSR-2 coding style guide にも従って頂くことになります。」とあるので、そのままでよさそうです。

https://book.cakephp.org/3.0/ja/contributing/cakephp-coding-conventions.html

editorconfigとは

.editorconfig ファイルに記載されたコーディング規約にのっとったルールで整形した上で保存がされます。

CakePHPの場合はデフォルトでベストプラクティスの.editorconfigが用意されています。

https://book.cakephp.org/3.0/ja/contributing/cakephp-coding-conventions.html

php-cs-fixerをインストールしたタイミングでMacのPHPのバージョンが 5.6 から 7.0 にあがるので注意

構文チェック用プラグイン

apm install linter  linter-eslint
apm install prettier-atom
apm install linter-php

コーディング規約チェック

apm install linter-phpcs
composer global require "squizlabs/php_codesniffer=*"
echo 'export PATH=$HOME/.composer/vendor/bin:$PATH' >> .bash_profile
source .bash_profile
phpcs --version
PHP_CodeSniffer version 2.8.1 (stable) by Squiz (http://www.squiz.net)

構文エラーチェック

apm install linter-phpmd
composer global require phpmd/phpmd
echo 'export PATH=$HOME/.composer/vendor/bin:$PATH' >> .bash_profile
source .bash_profile
phpmd --version
PHPMD 2.6.0

CakePHP用補完

apm install cakephp3-snippets

所感

しばらく使ってみて、ゆるいルールでいくならば、

  • php-cs-fixer
  • linter-phpmd
  • linter-phpcs

は無効にしてもいいかもしれない。

整形はatom-beautifyで

PHP-CS-Fixer

ではなく

PHPCBF

にしておくとよさそうな気がする。

CakePHPのデフォルトのフォーマットも書き換えてしまっているのが気にはなるが・・・。

参考

http://tech.innovator.jp.net/entry/2016/11/16/121345

http://qiita.com/hachijirou/items/ea00005ff4910f89d6bf

https://kore1server.com/334/Laravel%E3%81%A7CS+Fixer%E3%82%92%E4%BD%BF%E3%81%86

http://gorogoroyasu.hatenablog.com/entry/advent-calendar-2016-day2-atom-cakephp3