Laravel 開発環境用意

目次

PHP、Laravelの開発環境をまともに作った事が無かったのでいろいろやっていたのでメモ。

認証

Laravel SanctumのAPIトークン認証を使う事にしました。

テキトーな認証を実装したかったのでJWTを使いたかったのですが、tymon/jwt-authのメンテが止まってそうで、他にもJWTの良さげなパッケージが無かったので。

アプリケーションサーバー

Laravel Octaneを使ってみました。 nginxを前に置かなくて良いし、レスポンスが速くなるので取り敢えず使っておけば良いと思います。知らんけど。

FrankenPHPで動かすのがなんか良いみたいです。

フォーマッター

PHP-CS-Fixerで問題無いと思います。

リンター

PHPStanがまぁ安牌かなと。

PHPのリンターのVS Code拡張は軒並みファイルを保存しないと動いてくれないのでかなりイラっとします。

いろいろ試してみたんですが、次点で候補に上げるとしたらPsalmがマシ。

コードからのOpenAPI生成

L5-Swaggerが一番マシです。 全て自分で書かないといけないですが・・・。

scramblescribeは静的解析重視の生成なのですが、どうしても自分で弄る必要のある部分はあって、それを実装するのがかなり難解なので機能が揃うまでやめといた方がいいです。

L5-Swaggerの記述量の多さは一応属性を拡張したり頑張れば抑えられるので・・・手書きメインから必要なら随時対策するという形が良さそうです。

アーキテクチャ

5年間 Laravel を使って辿り着いた,全然頑張らない「なんちゃってクリーンアーキテクチャ」という落としどころを参考にするのが良さそう。

VS Code拡張と設定

IntelephenseとPHP Tools両方入れないと情報が不十分になる事があります。 同じ情報が2回ツールチップに出る事もありますが仕方ないかなという感じ。

[
  "bmewburn.vscode-intelephense-client",
  "DEVSENSE.phptools-vscode",
  "junstyle.php-cs-fixer",
  "SanderRonde.phpstan-vscode"
]
{
  "[php]": {
    "editor.tabSize": 4,
    "editor.defaultFormatter": "junstyle.php-cs-fixer"
  },
  "php-cs-fixer.executablePath": "${workspaceFolder}/vendor/bin/php-cs-fixer",
  "phpstan.memoryLimit": "2G",
  "php.inlayHints.parameters.enabled": false,
  "php.completion.docblock": false,
}