make:authの効果

make:authによって様々な処理が行われるので、ポイントを確認していきましょう。

ルーティングの追加

まず、routes/web.php を確認してみましょう

web.php

(省略)
Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

上記のような記述が追記されています。

  • 認証のための各種ルーティング(/loginなど)
  • 仮のログイン後のホームページのルーティング(/home)

がそれぞれ設定されています。 では、認証のための各種ルーティングがどのようなものか確認してみましょう。

実は、この Auth::routes() メソッドは以下のような定義になっています。

public function auth()
{
    // Authentication Routes...
    $this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
    $this->post('login', 'Auth\LoginController@login');
    $this->post('logout', 'Auth\LoginController@logout')->name('logout');

    // Registration Routes...
    $this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
    $this->post('register', 'Auth\RegisterController@register');

    // Password Reset Routes...
    $this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
    $this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
    $this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
    $this->post('password/reset', 'Auth\ResetPasswordController@reset');
}

(sample_app/vendor/laravel/framework/src/Illuminate/Routing/Router.php)

上記のコードを大きく分けると、

  • ログイン関連のルーティング
  • サインアップ関連のルーティング
  • パスワードリセット関連のルーティング

の大きく3ブロックにわかれることが確認できます。

コントローラの追加

続いてコントローラも追加されていることを確認してみましょう。 sample_app/app/Http/Controllers/ のディレクトリを確認すると、

  • HomeController.php、
  • Auth/LoginController.php
  • Auth/RegisterController.php
  • Auth/ResetPasswordController.php
  • Auth/ForgotPasswordController.php

以上、5つのコントローラが追加されています。

ビューの追加

さらにビューについても sample_app/resources/views/ディレクトリを確認すると

  • home.blade.php
  • auth/login.blade.php
  • auth/register.blade.php
  • auth/passwords/email.blade.php
  • auth/passwords/reset.blade.php

以上、5つのビューが追加されています。

モデルの追加

最後に、モデルについても確認しておきましょう。

  • sample_app/app/User.php

が追加されていることが確認できます。

まとめ

このように

php artisan make:auth

という一行を実行するだけで、今回見ただけでも

  • ルーティングの追記
  • コントローラーの追加
  • ビューの追加
  • モデルの追加

と様々な処理が行われました。

ログイン処理という多くのWebアプリケーションで利用され、しかも実装が複雑な機能について、Laravelは強力にサポートしていることがわかります。

results matching ""

    No results matching ""