PHP
Laravel 9.x時点での話 実行済みのクエリログを取得する場合、DB::connection()->enableQueryLog();のようにしてログを有効化し、$queries = DB::getQueryLog();のようにする。 クエリログはデフォルトでは取得しないようになっているので最初にenableQuery…
PHPStanというPHPの静的解析ツールがある。 github.com 歴史あるPHPプロダクトにこれを導入する場合、解析レベルを低めに設定したとしても、既存コードで多くのエラーが出ることがある。もちろんそれらのエラーを潰していくことも大事だが、ひとまず小さく導…
最近「PHPのコードをパースしていい感じにしたい」ということがあった。その時にPHP-Parserについて調べたので、使い方などを軽くメモしておく。 PHP-Parserとは このライブラリのこと。 github.com PHPのコードを静的解析して抽象構文木(AST)を生成し、そ…
昨日、社のとある勉強会でHotwireの話題があがった。僕はそれがどういうものなのかよく分かっていなかったのだが、他の参加者から「PHPでも似たようなやつあったような?」的なことを教えてもらった。どうやらLivewireがそれにあたるものらしい。せっかくな…
前にまとめたPHP5系で追加された機能を振り返る記事の続き。今回は、ほぼ知らなかったジェネレータについて調べた。サンプルコードを多めに載せ、まとめていく。 ジェネレータとは ジェネレータとは、イテレータのような反復処理をシンプルに実装できる構文…
前にまとめたPHP5系で追加された機能を振り返る記事の続き。今回は、よく理解していなかった遅延静的束縛について調べ直した。 転送コールと非転送コールとは 遅延静的束縛を理解するために、先にこの2つについてまとめる。 ▼ 転送コールとは self / parent …
レガシーなPHPコードを触っていると「あれ、このバージョンだとこの機能はまだ使えないのか?」みたいなことがたまにある。私がそれなりにPHPを使うようになったときの最新バージョンが5.6くらいで、それより前の機能はいつ追加されたものなのか曖昧にしか覚…
少し前に読んだ 2017年にプロが今更PHPを学ぶための本、Webまとめ - BASE開発チームブログ という記事で「短気なプログラマのためのPHPUnitクックブック」が紹介されていた。PHPについて書かれた本は世の中にたくさんあるが、PHPUnitについて書かれた本は結…