Rectorでリファクタリングを自動化 その3
以前にリファクタリングを自動化できるツール、Rectorを紹介しました。前回の記事ではRector側で用意された変換ルールに則ってリファクタする方法をお伝えしました。しかし、Rectorの真骨頂はむしろ自分で変換ルールを作成して各々の環境に合わせて自由にカスタマイズ出来る点にあります。直近の実務でそちらに触れる機会がありましたのでご紹介致します。
以前にリファクタリングを自動化できるツール、Rectorを紹介しました。前回の記事ではRector側で用意された変換ルールに則ってリファクタする方法をお伝えしました。しかし、Rectorの真骨頂はむしろ自分で変換ルールを作成して各々の環境に合わせて自由にカスタマイズ出来る点にあります。直近の実務でそちらに触れる機会がありましたのでご紹介致します。
個人で色々試したいものがある時に最新のPHPが必要となる事が多々あります。そんな時、今まではHomebrewで両方のversionをインストールして環境変数のパスを手作業で切り替えていましたが、正直面倒です。今回はPHPBrewを使ってそんな面倒が解消されるか試してみます。今回の記事は私の作業環境であるmacOSでの話となります、ご承知ください。
前回の記事ではRectorを使ってプロジェクト内の古い記法を書き換える手順を紹介しました。書き換えたい記法が1つの場合は前回の解説で十分だと思いますが、例えば、PHPのアップグレードに合わせて新たに導入された記法をまとめて適用したい、という場合は Set Lists を使うのがオススメです。今回はそちらの手順を紹介します。
前回紹介したmatch式 や Constructor Property Promotion のように新しい記法が導入されることでボイラープレートが駆逐されコードがより簡潔に読みやすくなります。しかし、長年運用されているプロジェクトなどでは書き換え必要な箇所が多く、導入するのに及び腰になってしまいがちです。Rectorを使うことでそんな億劫な作業が一瞬で完了するかもしれませんよ。
ここ1年位で良く聞くようになったVite。Vue.jsの生みの親であるEvan Youさん開発、との事なので、 Vue.jsとの親和性が高いのだろうな、と。Laravel + Vue.js のスタックで開発する機会があれば使ってみたいな、と。 私の中ではその程度の位置付けでした。 しかし、今年の6月、Laravel 9.2.0のリリース時のTaylerさんの以下のツイートを見て、認識を改めました。 Today we're pumped to announce that new Laravel projects use Vite…
私らの開発環境が最近やっとphp 8.0となりましたので、Laravel Pint(ピント)なるものを使ってみました。正式にLaravelの開発チームから登場したコードスタイル整形のツールですが、なんのことはない、Larajapanでも以前から数回紹介したphp-cs-fixerを土台にしたLaravel版です。しかし、より簡単になりました。
Laravel 8とは直接は関係ないのですが、以前ここで紹介したコード整形プログラムのphp-cs-fixerもバージョンアップとなりました。それにより使用していたその設定ファイルも変更の必要あります。
前回紹介したMailtrapに比べて機能は劣りますが、十分代わりとなるしかもオープンスース(つまり無料)のMailhogの紹介です。このプログラムと知り合ったのは、Laravelの最新バージョン8のsailのパッケージで使用されていたからです。sailはDockerを使用して簡単に開発環境を作成できる素晴らしいものなのですが、Dockerの1つのコンテイナーとしてMailhogがインストールされます。sailの紹介は別の機会として、今回は単独でのインストールです。
LaravelのマニュアルのMailのセクションでは、Mailtrapというサービスが紹介されています。開発中はGmailのアドレスの送信すればいいものの、なにゆえに必要なのか疑問を持っていました。しかし、先日LaravelのNotificationのHTMLメールでHTMLのタグがどう使われているかチェックするのに困ったことがあり、Mailtrapのサービスを使用してみました。
一緒に働くプログラマが増えると、まず気づくのは他のプログラマのコードのスタイルが自分とは違うことです。みなそれぞれ独自のスタイルとなる理由付けがあるのですが、ある程度統一されないと他者にとってコードを理解するのに時間がかかるようになります。しかし個人の慣習を変えてもらうのはいつも難しい。そこで登場するのが、以前にも紹介したコードスタイル修正のツール、php-cs-fixer。最近そのLaravel用のルールセットを見つけたので、それを合わせて再紹介です。