ためのLaravel入門サイトトレイトを理解してログイン認証のソースを追っていく2017/12/15自慢ではないのですが、僕はトレイトを知らなかったのでLaravelの認証のソースが読めませんでした。Laravelを使う人は僕みたいな感じではなく、ちゃんとPHPの基本は抑えています。普通はこんなことにならないでしょう。今回は自身の復習の意味もこめて、トレイトの勉強とLaravelの認証のソースを追ってみます。トレイトについてトレイトは基本的にクラスと同じ振る舞いをします。関数も書けますし、変数を定義することもできます。クラスとの違いは、トレイトは継承することなくメンバ(クラス内の変数とメソッド)を他のクラスで使用することができる点です。PHPではクラスを多重継承することができません。トレイトは一つのクラスから複数のトレイトを利用することができます。そのため、トレイトを使用すれば多重継承と同様なことができます。トレイト名」で宣言します。トレイトを利用するクラスはuseキーワードでトレイト名を指定します。一つのクラスから複数のトレイトを使用する場合は、トレイト名をカンマ区切りで指定します。演算子メソッド名が被ってしまった場合、insteadof演算子を使います。演算子は以下のような感じで覚えるといいかもしれません。自動生成されるソースを追っていきます。流れ1)ルーティング2)コントローラ(AuthController.php)3)トレイト(AuthenticatesAndRegistersUsers.php.php)4)トレイト(AuthenticatesUsers.php)1)ルーティング実はルーティングを見ても認証画面のコントローラがどこかわかりません。Route::auth();そこで以下のコマンドを実行をしてルートの流れを確認します。route:list上記のコマンドでログイン処理がApp\Http\Controllers\Auth\AuthController.phpで記述されていることがわかりました。あるloginメソッドを確認します。ソースを見ると中身がスッカラカンであることがわかります。ここで先ほど学んだトレイトの知識が生かされます。エイリアスが作成されています。Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;とあるのでこのトレイトを確認します。vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesAndRegistersUsers.phpを開きます。3)トレイト(AuthenticatesAndRegistersUsers.php)AuthenticatesAndRegistersUsers.phpを開くとまたトレイトです。演算子が使われています。これも名前空間のエイリアスが設定されています。同じ階層にあるファイルです。4)トレイト(AuthenticatesUsers.php)ここまで追って、ようやくloginメソッドの本体が見つかります。}ログインの定義は20行目になります。}attempltで認証を実行しています。その他にも、スロットル処理が行われています。ログインの失敗を数え、一定の数を超えると、しばらくログインできないという処理が加わっています(標準では60秒間に5回エラー)。このようにトレイトの振る舞いをきちんと理解しておかないと、Laravelの認証のソースが全く読めません。Laravelのログイン認証については以上です。気づいたことや新しい発見など情報を発信していきます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。独学で学習するなら動画学習が断然おススメ!Laravelが学べる評判の動画学習サイト3つご紹介します!PHPエンジニアとしての就職、転職、フリーランスに関しての情報はコチラ!Laravelが学べるプログラミングスクールに関しての記事をまとめています。アプリのチュートリアルをよく見ますよね。/まとめ環境構築PHPフレームワークのひとつであるLaravelを専門に書いている学習サイトです。