Laravel 8 Injeksi Ketergantungan: Panduan Lengkap – Codewithaden

Injeksi ketergantungan adalah frasa yang berarti dependensi kelas “Disuntikkan” ke dalam kelas melalui konstruktor atau, dalam beberapa kasus, “ setter “Metode. Kami dapat menyuntikkan kelas ke dalam konstruktor kelas lain dan kemudian mendapatkan objek kelas itu, dan melalui objek itu, kami dapat mengaksesnya metode dan properti

Injeksi ketergantungan Laravel

Wadah layanan di Laravel adalah wadah injeksi ketergantungan dan registri untuk aplikasi. Laravel Container adalah alat yang ampuh untuk mengelola dependensi dan menyimpan objek untuk berbagai tujuan; Misalnya; Anda dapat menyimpan benda dan menggunakannya Fasad

Injeksi ketergantungan umumnya digunakan bahkan dengan akses permintaan, dan kami sebagian besar menyuntikkannya.

public function __construct(Request $request) 

Mari kita lihat di bawah permukaan karena mengetahui bagaimana hal -hal bekerja selalu lebih baik daripada menghafalnya.

Saat Anda menyuntikkan obyek ke dalam Anda kelas , Container menggunakan API refleksi untuk memeriksa metode konstruktor Anda dan mengambil apa yang telah Anda tentukan sebagai ketergantungan.

Apa itu Reflection API di Laravel

Refleksi didefinisikan sebagai kemampuan program untuk memeriksa dirinya sendiri dan memodifikasi logikanya saat dieksekusi.

PHP 5 hadir dengan API refleksi lengkap yang menambah kemampuan kelas-kelas rekayasa balik, antarmuka, fungsi, metode, dan ekstensi.

Selain itu, API refleksi menawarkan cara untuk mengambil komentar DOC untuk fungsi, kelas, dan metode.

Refleksi lazim dalam PHP. Namun, ada beberapa situasi ketika Anda dapat menggunakannya bahkan tanpa menyadarinya.

Beberapa php built-in secara tidak langsung menggunakan API refleksi, call_user_func fungsi.

Kami akan mengerti dengan sebuah contoh.

Langkah 1: Pasang proyek Laravel.

Ketik perintah berikut.

composer create-project laravel/laravel DI --prefer-dist 

Sekarang, konfigurasikan database.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=di
DB_USERNAME=root
DB_PASSWORD=mysql 

Sekarang, kita perlu menyemai tabel pengguna

Ketik perintah berikut.

php artisan make:seeder UsersTableSeeder 

Langkah 2: Tulis pertanyaan dan benih tabel.

insert([
            'name' => str_random(10),
            'email' => str_random(10).'@gmail.com',
            'password' => bcrypt('secret'),
        ]);
          DB::table('users')->insert([
            'name' => str_random(10),
            'email' => str_random(10).'@gmail.com',
            'password' => bcrypt('secret'),
        ]);
           DB::table('users')->insert([
            'name' => str_random(10),
            'email' => str_random(10).'@gmail.com',
            'password' => bcrypt('secret'),
        ]);
            DB::table('users')->insert([
            'name' => str_random(10),
            'email' => str_random(10).'@gmail.com',
            'password' => bcrypt('secret'),
        ]);
             DB::table('users')->insert([
            'name' => str_random(10),
            'email' => str_random(10).'@gmail.com',
            'password' => bcrypt('secret'),
        ]);
    }
} 

Ketik perintah berikut di terminal Anda.

php artisan db:seed 

Ini akan membuat baris untuk tabel kami.

Langkah 2: Kode Injeksi Ketergantungan.

Membuat satu pengontrol dipanggil Usercontroller dengan mengetikkan perintah berikut.

php artisan make:controller UserController --resource
 

Juga, kita perlu membuat satu rute web untuk aplikasi kita.

Jadi, di Web.php File, tulis baris kode berikut.

Route::get('/users', 'UserController@index'); 

Kita perlu memasukkan kita User.php model dalam Usercontroller.php mengajukan.

use App\User; 

Kita juga perlu menulis konstruktor untuk kelas untuk menyuntikkan dependensi.

/**
     * The user repository implementation.
     *
     * @var UserRepository
     */
    protected $users;

    /**
     * Create a new controller instance.
     *
     * @param  User  $users
     * @return void
     */
    public function __construct(User $users)
    {
        $this->users = $users;
    } 

Dalam indeks () Fungsi, tulis baris kode berikut.

/**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $id = 2;
        $user = $this->users->find($id);
        return $user;
    } 

Dalam contoh kehidupan nyata, kita perlu melewati $ id Sebagai parameter dari fungsi itu, tetapi ini adalah demo, jadi tidak diperlukan di sini.

Sekarang, mulailah server Laravel dengan mengetikkan perintah berikut.

php artisan serve 

Tekan URL berikut.

http://localhost:8000/users

Anda akan melihat output seperti ini.

{
 "id": 2,
 "name": "qvzbXlneUl",
 "email": "W4PvNyLAdX@gmail.com",
 "created_at": null,
 "updated_at": null
} 

Jadi, kami telah berhasil menyuntikkan kelas ke dalam konstruktor dan membuat satu objek dari model itu, dan melalui objek itu, kami sekarang dapat mengakses metodenya dan menampilkan data dari database.

Di Laravel, Anda juga dapat mengarahkan mengarahkan kelas ke dalam metodenya, dan pada saat itu, Anda bahkan tidak perlu membangun objek; Laravel akan membuat Anda lewat API Resolusi.
/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
 public function index(User $users)
 {
   $id = 2;
   $user = $users->find($id);
   return $user;
 }
 

Itu untuk tutorial ini.

Lihat juga

Pengujian HTTP Laravel

Pengrajin Laravel

Gerbang Laravel

Antrian Laravel

Campuran Laravel

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *