Rumah >rangka kerja php >Laravel >Pengenalan terperinci kepada langkah-langkah penulisan dan amalan Laravel Action
Laravel ialah rangka kerja pembangunan PHP yang sangat popular yang popular untuk API yang ringkas namun berkuasa dan kit alat komprehensif. Dalam Laravel, "Tindakan" ialah konsep yang membolehkan anda membina pengawal dan memudahkan lapisan logik anda dengan lebih mudah. Berikut ialah pengenalan terperinci kepada langkah dan amalan tentang cara menulis Tindakan Laravel.
Mula-mula, anda perlu mencipta kelas Tindakan. Dalam Laravel 8 dan ke atas, anda boleh menciptanya melalui arahan Artisan:
php artisan make:action MyAction
Ini akan mencipta fail kelas baharu "MyAction.php" untuk anda dalam direktori aplikasi/Action. Sekarang, kita boleh mula menulis logik Tindakan.
Dalam Tindakan anda, anda boleh menentukan logik perniagaan khusus untuk setiap kaedah dalam pengawal. Di sini kami akan mencipta kaedah untuk mengendalikan logik log masuk pengguna.
<?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('Invalid login credentials'); } return Auth::user(); } }
Dalam contoh di atas, kami mencipta Tindakan yang dipanggil LoginUserAction. Ia menerima tatasusunan yang mengandungi kelayakan log masuk pengguna, melakukan percubaan log masuk dan membuang pengecualian jika terdapat ralat, jika tidak, ia mengembalikan pengguna yang berjaya disahkan.
Perlu diingat bahawa kami menggunakan fasad Auth Laravel untuk melaksanakan operasi log masuk. Ini membolehkan kami memanfaatkan sistem pengesahan Laravel dengan mudah.
Kini, kami telah mencipta kelas Tindakan dan menentukan logiknya. Langkah seterusnya ialah menggunakannya dalam pengawal.
Langkah pertama untuk menggunakan Tindakan ialah membuka pengawal dan menambah pernyataan penggunaan untuk membawa masuk kelas Tindakan:
<?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')); } }
Dalam kod di atas, kami merujuk dari ruang nama kami sendiri LoginUserAction. Kemudian kami menambah kaedah log masuk(), yang parameter pertamanya ialah objek Permintaan Laravel dan parameter kedua ialah contoh LoginUserAction yang kami buat di atas.
Dalam log masuk(), kami mula-mula mengekstrak e-mel dan kata laluan berdasarkan kandungan permintaan, dan kemudian memanggil Tindakan kami untuk melaksanakan logik melalui parameter $credentials. Jika berjaya, kami mengembalikan pengguna dalam format JSON, jika tidak, kami mengembalikan mesej ralat kepada klien.
Kini, kami boleh mengakses kaedah log masuk() kami dan memanggil kaedah laksana dalam kelas LoginUserAction. Kami akan menghantar tatasusunan yang mengandungi beberapa bukti kelayakan log masuk dalam permintaan HTTP dan mengembalikan hasilnya.
Tentukan laluan log masuk yang sepadan dalam laluan:
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\AuthController; Route::post('/login', [AuthController::class, 'login'])->name('login');
Kini kami boleh mengakses laluan /login aplikasi laravel kami, yang akan kelihatan seperti ini:
POST /login HTTP/1.1 Host: localhost:8000 Content-Type: application/json { "email": "user@example.com", "password": "my_password" }
Ini akan mencetuskan kaedah log masuk() yang kami takrifkan dalam pengawal, memanggil LoginUserAction, menghantar e-mel dan kata laluan sebagai parameter.
Laravel Actions menyediakan cara yang mudah dan bersih untuk mengatur logik perniagaan anda. Dengan mengalihkan logik perniagaan daripada pengawal dan ke dalam kelas Tindakan, anda boleh mencapai banyak penggunaan semula kod dan peningkatan kebolehselenggaraan.
Apabila menggunakan Tindakan Laravel, anda harus mengikuti dua amalan terbaik ini:
Akhir sekali, perlu diingatkan bahawa fungsi Action telah diperkenalkan dalam Laravel 8. Jika anda menggunakan versi lama Laravel, anda mungkin perlu mencipta kelas Action secara manual dan menyimpan fail kelas dalam lokasi yang sesuai dan kemudian nyatakan secara manual dan memanggilnya dalam pengawal.
Atas ialah kandungan terperinci Pengenalan terperinci kepada langkah-langkah penulisan dan amalan Laravel Action. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!