😽

Docker -> Laravel with PhpStormの環境設定

2022/11/19に公開

準備

brew install php
brew install composer

環境設定

  • 環境設定 | PHP | Composer
    • composer.json と IDE 設定を同期する
  • 環境設定 | ツール | 保存時のアクション
    • コードの整形を ON にする
    • インポートの最適化を ON にする
  • 環境設定 | エディター | コードスタイル | PHP
    • フォーマットを PSR12 にする

Laravel IDE Helper の導入

composer require --dev barryvdh/laravel-ide-helper
php artisan ide-helper:generate
php artisan ide-helper:meta
php artisan ide-helper:model --write-mixin

Larastan の導入

composer require nunomaduro/larastan:^2.0 --dev
phpstan.neon の作成
./vendor/bin/phpstan analyse --memory-limit=2G
phpstan.neon
includes:
    - ./vendor/nunomaduro/larastan/extension.neon
parameters:
    paths:
        - app
    level: max
    ignoreErrors:
        - '#PHPDoc tag @mixin contains unknown class App\\Models\\IdeHelper#'

PhpStorm の設定

  • 自動設定されるので手動設定は基本不要
  • 環境設定 | エディター | インスペクション | 品質ツール
    • PHPStan 検証の重要度を 警告 にする

PHP_CodeSniffer の導入

php composer require --dev squizlabs/php_codesniffer
phpcs.xml を作成
./vendor/bin/phpcs --standard=phpcs.xml
phpcs.xml
<?xml version="1.0"?>
<ruleset name="PSR12/Laravel">
    <arg name="extensions" value="php" />
    <rule ref="PSR12" />
    <rule ref="Generic.Arrays.DisallowLongArraySyntax.Found"/>
    <rule ref="Squiz.NamingConventions.ValidVariableName.NotCamelCaps"/>
    <rule ref="Squiz.Strings.DoubleQuoteUsage.NotRequired">
        <exclude name="Squiz.Strings.DoubleQuoteUsage.ContainsVar"/>
    </rule>
    <arg name="colors" />
    <arg value="ps" />
    <file>app</file>
    <file>tests</file>
</ruleset>

PhpStorm の設定

  • 自動設定されるので手動設定は基本不要
  • 環境設定 | エディター | インスペクション | 品質ツール
    • PHP_CodeSniffer 検証の重要度を 警告 にする

PHPUnit を PHPStorm と連携させる

  • 環境設定 | PHP | テストフレームワーク
    • 自動設定されるので手動設定は不要
  • 環境設定 | PHP
    • CLI インタープリター
    • 名前:docker-php
    • Docker Compose
      • サーバー:Docker
      • 構成ファイル:docker-compose.yml
      • サービス:docker-php
    • ライフサイクル
      • 既存コンテナーに接続する

Discussion