這一節是 laravel 框架 容器 Container 的 Interface 介面類 Illuminate\Contracts\Container\Container
它在 psr 標準容器通用介面 psr/container
的基礎上擴充套件功能。
psr 標準 容器通用介面
psr/container
或許是開源協議,它規定了容器標準介面以及異常標準介面。
namespace Psr\Container;
//描述一個容器讀取其條目的通用方法的介面。
interface ContainerInterface{
/**
* 根據容器的識別符號查詢容器的項並返回它.
* @param string $id 要查詢的項的識別符號.
*
* @throws NotFoundExceptionInterface 沒有找到該識別符號的項.
* @throws ContainerExceptionInterface 檢索條目時出錯.
*
* @return mixed Entry.
*/
public function get($id);
/**
* 如果容器可以返回給定識別符號的條目,則返回true.否則返回false.
*
* `has($id)` 返回 true 並不意味著 `get($id)` 將不會丟擲異常.
* 但這意味著' get($id) '不會丟擲' NotFoundExceptionInterface.
*
* @param string $id 要查詢的項的識別符號.
*
* @return bool
*/
public function has($id);
}
laravel 框架容器介面 Illuminate\Contracts\Container\Container 擴充套件 psr 通用容器介面 psr/container
Illuminate\Contracts
目錄下都是各種介面類 interface
。如果說 psr 通用介面是廣義上的容器基本功能,那麼框架介面類則是 laravel 框架獨有的容器基本功能。
psr/container psr 通用容器介面
︿ Illuminate\Contracts\Container\Container laravel 框架容器介面
<?php
namespace Illuminate\Contracts\Container;
use Closure;
use Psr\Container\ContainerInterface;
interface Container extends ContainerInterface
{
// abstract 抽象類 concrete 具體的實現類
//確定給定的抽象型別是否已被繫結。
public function bound($abstract);
//將型別別名化為另一個名稱
public function alias($abstract, $alias);
//將一組標記分配給給定的繫結
public function tag($abstracts, $tags);
//解析給定標記的所有繫結
public function tagged($tag);
//向容器註冊繫結
public function bind($abstract, $concrete = null, $shared = false);
//如果繫結尚未註冊,則註冊它
public function bindIf($abstract, $concrete = null, $shared = false);
//在容器中註冊一個共享繫結
public function singleton($abstract, $concrete = null);
//“擴充套件”容器中的抽象型別
public function extend($abstract, Closure $closure);
//在容器中註冊一個共享的現有例項
public function instance($abstract, $instance);
//定義上下文繫結
public function when($concrete);
//獲取一個閉包來從容器中解析給定的型別
public function factory($abstract);
//從容器中解析給定型別
public function make($abstract, array $parameters = []);
//呼叫給定的閉包 / class@method and 注入它的依賴
public function call($callback, array $parameters = [], $defaultMethod = null);
//確定給定的抽象型別是否已解析
public function resolved($abstract);
//註冊一個新的解析回撥
public function resolving($abstract, Closure $callback = null);
//在解析回撥之後註冊一個新的
public function afterResolving($abstract, Closure $callback = null);
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結