古いLaravelのルート指定を正規表現で置き換えるHogeController@index’->[HogeController::class, ‘index’]

タイトルの通りです。誰でもできる内容ですが、正規表現の初心者向けに残しておきます。

Laravel5系で作られたサイトをLaravel9系にアップデートする際に、ルート指定が以前の指定方法でした。

そのままでも動作しているようですが、ちゃんとしたい&コードジャンプが効かないなどの弊害があったので現在の指定方法に書き直した際の記録です。

結論:正規表現で置き換えた

最初はVSCodeで共通箇所を適当に置き換えながらやろうかなと思ったのですが、手作業だとミスが生まれそう。

ということで、数分かけて正規表現(すぐ忘れる)でやることにしました。

やりたいこと

以下の様な古いLaravelの指定を

Route::get('/', 'HogeController@index');

以下の様にしたい(早く&ミスが無いように)

Route::get('/', [HogeController::class, 'index']);

正規表現

以下で検索し、

'([\\a-zA-Z0-9])@([a-zA-Z0-9])'

以下に置き換え

[$1::class, '$2']

これでできました。何も難しいことはしていませんね。

とは言え、普段正規表現をあまり使わない私のような人が、数分でも時間を短縮してもらえれば幸いです。

コメント

タイトルとURLをコピーしました