黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

Laravel 契約

laravel契約是一套由框架提供的各種功能和核心服務(wù)的接口。

例如, illuminate \ contracts \ queue \ queue 合同使用排隊作業(yè)所需的方法, illuminate \ contracts \ mail \ mailer 使用該方法發(fā)送電子郵件。

每個定義的合同都包含相應(yīng)的框架實施。所有的laravel合同都可以在github倉庫中找到,如下所述 -

https://github.com/illuminate/contracts

該存儲庫提供了laravel框架中可用的各種合約,可以相應(yīng)地下載和使用它們。

 

重點

在處理laravel合同時,請注意以下重要事項 -

  • 在類的構(gòu)造函數(shù)中定義外墻是強制性的。

  • 合同在類中明確定義,您不需要在構(gòu)造函數(shù)中定義合同。

考慮下面提到的用于laravel授權(quán)的合同 -

 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 = []);
}

合約使用一個函數(shù)can,它包含一個名為 ability 的 參數(shù) 和使用 數(shù)組 形式的用戶標識的 參數(shù) 。

您將不得不按照以下語法來定義合同 -

interface  

合同的使用類似于facade,用于創(chuàng)建強大的,經(jīng)過良好測試的laravel應(yīng)用程序。合同和外墻的使用有各種 實際的差異 。

以下代碼顯示了如何使用合同來緩存存儲庫 -

 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;
   }
}

合同不包含實現(xiàn)和新的依賴關(guān)系; 編寫指定契約的替代實現(xiàn)很容易,因此用戶可以在不修改任何代碼庫的情況下替換緩存實現(xiàn)。

相關(guān)文章