Rumah > rangka kerja php > Laravel > Cara menggunakan bekas laravel

Cara menggunakan bekas laravel

PHPz
Lepaskan: 2023-05-26 12:36:13
asal
962 orang telah melayarinya

Laravel ialah rangka kerja PHP yang sangat popular yang menyediakan banyak ciri mudah, salah satunya ialah bekas. Bekas Laravel ialah sistem suntikan kebergantungan yang membolehkan kami mengurus kejadian objek dengan mudah dalam aplikasi kami. Dalam artikel ini, kita akan belajar tentang bekas Laravel dan cara menggunakannya.

  1. Apakah itu bekas Laravel

Bekas Laravel ialah bekas IoC, iaitu bekas suntikan kebergantungan. Ia adalah pendaftaran yang membolehkan pengurusan mudah objek dalam aplikasi. Objek ini boleh menjadi apa sahaja termasuk perkhidmatan, perisian tengah, pengawal, model, dll.

Menggunakan bekas Laravel mempunyai dua faedah utama:

  • Kod mudah diurus
  • Mudah untuk diuji
  1. Cara untuk Menggunakan Bekas Laravel

Bekas Laravel boleh digunakan dengan mudah dalam aplikasi. Pertama, kita perlu memahami salah satu konsep teras bekas - mengikat.

Pengikatan

Pengikatan ialah proses mengikat kelas atau antara muka ke dalam bekas. Apabila kita memerlukan contoh terikat, bekas menyediakannya. Dalam Laravel, pengikatan dilakukan menggunakan kaedah bind/bindShared. Kaedah bind mengikat contoh, manakala kaedah bindShared mengikat satu.

Sebagai contoh, kami ingin mengikat kelas operasi pangkalan data. Kita boleh mengikatnya ke dalam bekas menggunakan kod berikut dalam Laravel:

App::bind('db', function()
{
    return new Database;
});
Salin selepas log masuk

Ini akan mengikat kelas yang dipanggil "db" dan apabila kita memanggil "db" bekas itu akan mengembalikan sambungan baharu.

Dependency Injection

Dependency Injection adalah salah satu fungsi utama bekas Laravel. Ia merujuk kepada menghantar kebergantungan kepada objek dan bukannya menghidupkannya di dalam objek.

Sebagai contoh, kami mempunyai pengawal yang memerlukan objek pangkalan data sebagai parameter. Kami boleh menggunakan suntikan kebergantungan untuk menghantarnya kepada pengawal:

class UserController extends Controller {

    protected $db;

    public function __construct(Database $db)
    {
        $this->db = $db;
    }

    public function index()
    {
        $users = $this->db->table('users')->get();
        return view('users.index', compact('users'));
    }

}
Salin selepas log masuk
Salin selepas log masuk

Dalam contoh ini, kami menggunakan suntikan kebergantungan untuk menghantar objek pangkalan data instantiated kepada pengawal. Operasi ini dilakukan secara automatik oleh bekas Laravel.

Dalam Laravel, anda boleh menggunakan dua kaedah untuk suntikan kebergantungan. Satu suntikan konstruktor dan satu lagi suntikan kaedah. Contoh kod di atas menggunakan suntikan pembina.

Suntikan kaedah

Suntikan kaedah ialah satu lagi cara suntikan kebergantungan. Ia boleh menyuntik contoh kelas dalam kaedah seperti yang diperlukan.

Sebagai contoh, kami mempunyai kelas yang mengendalikan pengguna, yang mempunyai kaedah getUser, yang memerlukan contoh kelas Auth. Kita boleh menyuntik contoh ini dalam parameter kaedah:

class UserService {

    public function getUser(Auth $auth)
    {
        return $auth->user();
    }

}
Salin selepas log masuk

Dalam contoh ini, apabila kita memanggil kaedah getUser, bekas Laravel akan secara automatik menyuntik tika kelas Auth.

  1. Senario aplikasi kontena Laravel

Bekas Laravel boleh digunakan dalam banyak senario. Berikut ialah beberapa senario biasa:

  • Pembekal perkhidmatan

Pembekal perkhidmatan ialah salah satu konsep yang biasa digunakan dalam bekas Laravel. Ia adalah kelas yang menyediakan perkhidmatan kepada aplikasi. Contohnya, dalam Laravel, kami boleh mendaftarkan pembekal perkhidmatan menggunakan kod berikut:

class AppServiceProvider extends ServiceProvider {

    public function boot()
    {
        //
    }

    public function register()
    {
        $this->app->bind('db', function()
        {
            return new Database;
        });
    }

}
Salin selepas log masuk

Dalam kod di atas, kami mengikat perkhidmatan bernama "db" yang akan mengembalikan sambungan pangkalan data baharu.

  • Middleware

Middleware ialah kelas yang dipanggil semasa proses pemprosesan permintaan Laravel. Dalam perisian tengah, kami boleh mengubah suai atau meningkatkan permintaan dan respons HTTP. Kami boleh menggunakan bekas Laravel untuk menyuntik perisian tengah ke dalam aplikasi:

class ExampleMiddleware {

    public function handle($request, Closure $next)
    {
        // 处理请求
        $response = $next($request);

        // 处理响应
        return $response;
    }

}
Salin selepas log masuk

Dalam kod di atas, kami telah menentukan perisian tengah yang dipanggil ExampleMiddleware yang akan mengendalikan permintaan dan respons HTTP.

  • Pengawal

Pengawal Laravel ialah kelas yang digunakan untuk mengendalikan permintaan HTTP. Kita boleh menggunakan bekas Laravel untuk menyuntik pengawal ke dalam aplikasi:

class UserController extends Controller {

    protected $db;

    public function __construct(Database $db)
    {
        $this->db = $db;
    }

    public function index()
    {
        $users = $this->db->table('users')->get();
        return view('users.index', compact('users'));
    }

}
Salin selepas log masuk
Salin selepas log masuk

Dalam kod di atas, kami membuat instantiate dan menyuntik kelas pangkalan data ke dalam pengawal UserController.

  1. Ringkasan

Bekas Laravel ialah bekas suntikan kebergantungan yang berkuasa. Ia membolehkan kami mengurus kejadian objek dengan mudah dan menjadikan kod kami lebih mudah untuk diuji dan dilanjutkan. Dalam aplikasi Laravel, kita boleh menggunakan bekas untuk menyelesaikan banyak tugas seperti mendaftarkan penyedia perkhidmatan, perisian tengah dan pengawal. Jika anda ingin mengetahui lebih lanjut tentang bekas Laravel, lihat dokumentasi Laravel rasmi.

Atas ialah kandungan terperinci Cara menggunakan bekas laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan