ホームページ  >  記事  >  PHPフレームワーク  >  Laravel Action の作成手順と実践方法の詳細な紹介

Laravel Action の作成手順と実践方法の詳細な紹介

PHPz
PHPzオリジナル
2023-04-21 10:05:50784ブラウズ

Laravel は非常に人気のある PHP 開発フレームワークであり、そのシンプルで強力な API と包括的なツールキットで人気があります。 Laravel では、「アクション」はコントローラーを構築し、ロジック層をより簡単に簡素化できるようにする概念です。以下では、Laravel アクションの作成手順と実践方法を詳しく紹介します。

  1. アクション クラスの作成

まず、アクション クラスを作成する必要があります。 Laravel 8 以降では、Artisan コマンドを使用して作成できます:

php artisan make:action MyAction

これにより、app/Action ディレクトリに新しいクラス ファイル「MyAction.php」が作成されます。ここで、アクションのロジックを書き始めることができます。

  1. アクションのロジックの作成

アクションでは、コントローラーのメソッドごとに特定のビジネス ロジックを定義できます。ここでは、ユーザー ログインのロジックを処理するメソッドを作成します。

<?php

namespace App\Actions;

use Illuminate\Support\Facades\Auth;

class LoginUserAction
{
    public function execute(array $credentials)
    {
        $attempt = Auth::attempt($credentials);

        if (!$attempt) {
            throw new \Exception(&#39;Invalid login credentials&#39;);
        }

        return Auth::user();
    }
}

上の例では、LoginUserAction という名前のアクションを作成しました。ユーザーのログイン資格情報を含む配列を受け取り、ログインを試行し、エラーがある場合は例外をスローし、それ以外の場合は、正常に認証されたユーザーを返します。

ログイン操作を実行するために Laravel の Auth ファサードを使用していることは注目に値します。これにより、Laravel の認証システムを簡単に活用できるようになります。

  1. コントローラーでのアクションの使用

これで、Action クラスを作成し、そのロジックを定義しました。次のステップは、それをコントローラーで使用することです。

Action を使用するための最初のステップは、コントローラーを開いて、Action クラスを導入する use ステートメントを追加することです。

<?php

namespace App\Http\Controllers;

use App\Actions\LoginUserAction;
use Illuminate\Http\Request;

class AuthController extends Controller
{
    public function login(Request $request, LoginUserAction $loginAction)
    {
        $credentials = $request->only(['email', 'password']);

        try {
            $user = $loginAction->execute($credentials);
        } catch (\Exception $e) {
            return response()->json([
                'message' => $e->getMessage()
            ], 401);
        }

        return response()->json(compact('user'));
    }
}

上記のコードでは、独自の名前空間から LoginUserAction を参照しました。次に、login() メソッドを追加しました。このメソッドの最初のパラメータは Laravel の Request オブジェクト、2 番目のパラメータは上で作成した LoginUserAction インスタンスです。

login() では、まずリクエストの内容に基づいて電子メールとパスワードを抽出し、次にアクションを呼び出して、$credentials パラメーターを通じてロジックを実行します。成功した場合は、ユーザーを JSON 形式で返します。成功しなかった場合は、クライアントにエラー メッセージを返します。

  1. アクションの呼び出し

これで、login() メソッドにアクセスし、LoginUserAction クラスの実行メソッドを呼び出すことができます。 HTTP リクエストでログイン資格情報を含む配列を渡し、結果を返します。

ルート内で対応するログイン ルートを定義します:

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;

Route::post(&#39;/login&#39;, [AuthController::class, &#39;login&#39;])->name('login');

これで、laravel アプリケーションの /login ルートにアクセスできるようになります。これは次のようになります:

POST /login HTTP/1.1
Host: localhost:8000
Content-Type: application/json

{
    "email": "user@example.com",
    "password": "my_password"
}

これにより、コントローラーで定義されたlogin()メソッドはLoginUserActionを呼び出し、電子メールとパスワードをパラメータとして渡します。

  1. 概要

Laravel Action は、ビジネス ロジックを整理するためのシンプルでクリーンな方法を提供します。ビジネス ロジックをコントローラーからアクション クラスに移動することにより、多くのコードの再利用と保守性の向上を実現できます。

Laravel アクションを使用する場合は、次の 2 つのベスト プラクティスに従う必要があります。

  • 各メソッドは 1 つのことだけを実行する必要があります。
  • Action クラス内の外部クラスやオブジェクトへの直接アクセスを避け、変数を渡す方法を使用して、データの共通の繰り返し処理を実現します。

最後に、Action 関数は Laravel 8 で導入されたことに注意してください。古いバージョンの Laravel を使用している場合は、Action クラスを手動で作成し、そのクラス ファイルを次の場所に保存する必要がある場合があります。適切な場所に配置してから、手動でインスタンスを作成し、コントローラーで呼び出します。

以上がLaravel Action の作成手順と実践方法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。