【Laravel】実行されたDBクエリの確認ができるライブラリ”Laqu”のアップデートをした

投稿日:

はじめに

というわけで、以前に書いたLaquというライブラリのアップデートをしました。
対応したのは以下項目です。

どんな対応をしたのか

PHP8.0の対応

これは単純に、GitHub ActionsのymlファイルにPHP8.0を対象として加えただけです。
コミットはこんな感じ。

ふつうに動いてよかった。

Larastanの適用

これはけっこう苦労して、Larastanが依存しているライブラリのバージョンも指定しないと、このバージョンのこのパターンだとエラーみたいになってしまいました。
こういうときは、phpstan analyse --debugのようにphpstanのコマンドに--debugをつけて実行すると、どこでエラーとなっているのかが分かるので解決の糸が見えやすいです。

以下は、PHP8 x Laravel 6.* x prefer-lowest(低いバージョンの依存テスト)の組み合わせで発生したエラーのログです。

> phpstan analyse --memory-limit=2G --debug
Note: Using configuration file /home/runner/work/laqu/laqu/phpstan.neon.dist.
/home/runner/work/laqu/laqu/src/Analyzer/QueryAnalyzer.php
Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: syntax error, unexpected token "\" in /home/runner/work/laqu/laqu/vendor/mockery/mockery/library/Mockery/Loader/EvalLoader.php(34) : eval()'d code:894
#0 /home/runner/work/laqu/laqu/vendor/mockery/mockery/library/Mockery/Container.php(223): Mockery\Loader\EvalLoader->load()
#1 /home/runner/work/laqu/laqu/vendor/mockery/mockery/library/Mockery.php(82): Mockery\Container->mock()
〜

こう見てみると、mockeryでエラーになっていることがわかります。
※ このときmockeryのバージョンは1.0を指していました

そして、mockeryを見てみると、php7.3以上に対応しているのは1.4系1.5系であることがわかりました。
そのため、mockeryは別途、"mockery/mockery": "^1.4|^1.5",のように指定を入れて対応をしました。

そもそもどうやって使うの?

そもそもどうやって使うのかですが、これは昔Qiitaに書いてあるのでこちらを参考にしていただけるとありがたいです。

おわりに

PHP8.0で書いている実案件でも絶賛稼働中で、興味のある方がいらっしゃれば触っていただけるとうれしいです。
※ クエリの確認とかテストが楽になるので個人的には気に入っています

作成者: shimabox

Web系のプログラマをやっています。 なるべく楽しく生きていきたい。

コメントする

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください