90053
マルチ認証でLaravelのコアファイルを複製する必要があるのですが、  
これ以外に方法はないでしょうか？

こちらのサイトを参考にLaravel8+Breezeでのマルチ認証を導入しました  
[Laravel Breezeでマルチ認証(Multi
Authentification)の徹底解説](https://reffect.co.jp/laravel/breeze_multi_auth#i-20)

気になっているのは最後の部分  
[リセットメールの送信内容](https://reffect.co.jp/laravel/breeze_multi_auth#i-20)で、venderフォルダ配下のLaravelのファイル`ResetPassword.php`を複製して専用ファイルを作ることです

>
> ResetPassword.phpファイルを更新するのではなくResetPassword.phpファイルをコピーして新たにAdminResetPassword.phpファイルを作成します

`vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php`

gitで管理していますが、venderフォルダなので除外しています  
また、将来`ResetPassword.php`の処理が変わってしまった場合も不安があります。

他で「マルチ認証」に関する記事を調べてみました。  
リセットメールに触れているものはありませんでした

[Laravel8でマルチログイン機能（管理者とユーザーの2つ）を実装する方法【対象のファイルもすべて紹介】](https://dkssksk.com/laravel-8-multi-
login/)  
[laravel
Breezeでマルチログイン機能を実装](https://qiita.com/marururu30/items/be4031f6bf2e1076f5a5)  
[Laravel8+laravel/breezeでマルチログイン](https://qiita.com/nomuraxis/items/0791dfd3eea9c5ca4085#admin%E7%94%A8%E3%81%AEcontroller%E3%82%84blade%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)

マルチ認証は導入したいのですが、コアファイル近くは触れたくない。  
というわけで、他に良い方法がご存知でしたら教えてください。  
よろしくお願いします。
CC BY-SA 4.0
2022-07-17T02:27:55.447
90029
2022-07-18T01:02:58.900
7980
question
laravel
Laravel Breeze マルチ認証で「リセットメール」の送信
感じられた疑問はもっともだと思います。  
私もLaravelのコアファイルをカスタマイズすることに激しい抵抗を感じます。

一方Laravel
Breezeに限らずLaravelの認証パッケージを導入すると少なからずそういう状況に出くわします。必要であればどんどんコピーする（それしか方法が無い）と割り切ってください。vendor配下を直接更新することだけ避ければOKです。

私はこんな風に考えています。

  * 前提としてLaravel Breeze等を導入しなくても、素のLaravelだけで認証は実装できる。
  * Laravel Breeze等が提供してくれるファイルはあくまで「サンプルコード」程度
  * 多くの要件は「サンプルコードの修正」で事足りるがそうでない修正が必要な箇所も出てくる（今回のように）

これに対する対処法は２通りで、

  1. BreezeやLaravel本体の機能をコピーしてカスタマイズ（今回の方法）
  2. そもそも「カスタマイズ」ではなく、素のLaravelのみで自由な設計で認証を実装する。

一見すると「1」が楽そうですが、カスタマイズを繰り返した結果「2」以上の労力とコード量が積み重ねられてしまうことも多いので、余裕があれば最初から作り直してしまうことも視野に入れると良いかもしれないですね。コアファイルを意識する必要も一切なくなります。
CC BY-SA 4.0
2022-07-18T01:02:58.900
90053
2022-07-18T01:02:58.900
53573
90029
answer