Laravel – Contracts (Hợp Đồng)

0
40

Laravel contracts là một tập hợp các giao diện với các chức năng khác nhau và các dịch vụ cốt lõi được cung cấp bởi framework..

Ví dụ, hợp đồng Illuminate \ Contracts \ Queue \ Queue sử dụng một phương thức cần thiết cho các công việc xếp hàng và Illuminate \ Contracts \ Mail \ Mailer sử dụng phương thức này để gửi email.

Mọi hợp đồng được xác định đều bao gồm việc thực hiện khuôn khổ tương ứng. Tất cả các hợp đồng Laravel đều có sẵn trong kho lưu trữ GitHub như được đề cập bên dưới –

https://github.com/illuminate/contracts

Kho lưu trữ này cung cấp nhiều loại hợp đồng có sẵn trong khuôn khổ Laravel có thể được tải xuống và sử dụng tương ứng.

Table of Contents

Điểm quan trọng

Trong khi làm việc với đồng Laravel, hãy lưu ý những điểm quan trọng sau:

Bắt buộc phải xác định các mặt trong tạo hàm của một lớp.

Các đồng hợp tác được xác định rõ ràng ràng buộc trong các lớp và bạn không cần phải xác định các đồng hợp tác trong các trình tạo.

<?php

namespace Illuminate\Contracts\Auth\Access;

interface Authorizable{
   /**
      * Determine if the entity has a given ability.
      *
      * @param string $ability
      * @param array|mixed $arguments
      * @return bool
   */
   public function can($ability, $arguments = []);
}

Contract sử dụng một hàm có thể bao gồm một parameter named ability and arguments sử dụng nhận dạng người dùng dưới dạng một mảng.

Bạn sẽ phải xác định một hợp đồng như thể hiện trong cú pháp bên dưới:

interface <contract-name>

Contracts được sử dụng giống như các mặt tiền để tạo các ứng dụng Laravel mạnh mẽ, đã được thử nghiệm tốt. Có nhiều khác biệt thực tế với việc sử dụng hợp đồng và mặt tiền.

Đoạn mã sau cho thấy việc sử dụng hợp đồng để lưu vào bộ nhớ đệm một kho lưu trữ:

<?php

namespace App\Orders;
use Illuminate\Contracts\Cache\Repository as Cache;

class Repository{
   /**
      * The cache instance.
   */
   
   protected $cache;
   
   /**
      * Create a new repository instance.
      *
      * @param Cache $cache
      * @return void
   */
   
   public function __construct(Cache $cache) {
      $this->cache = $cache;
   }
}

Contracts không có thực hiện và các phụ thuộc mới; rất dễ dàng để viết một triển khai thay thế của một hợp đồng được chỉ định, do đó người dùng có thể thay thế triển khai bộ đệm mà không cần sửa đổi bất kỳ cơ sở mã nào.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây