# Zhamao Framework: ContainerInterface接口 参考

ContainerInterface接口 参考
类 ContainerInterface 继承关系图:
[图例]
ContainerInterface 的协作图:
[图例]

## Public 成员函数

| bound (string $abstract)
| alias (string $abstract, string $alias)
| bind (string $abstract, $concrete=null, bool $shared=false)
| bindIf (string $abstract, $concrete=null, bool $shared=false)
| singleton (string $abstract, $concrete=null)
| singletonIf (string $abstract, $concrete=null)
| instance (string $abstract, $instance)
| factory (string $abstract)
| flush ()
| make (string $abstract, array $parameters=[])
| call (callable $callback, array $parameters=[], string $default_method=null)

## 详细描述

Interface ContainerInterface

从 Illuminate WorkerContainer 简化而来，兼容 PSR-11

## 成员函数说明

## alias()

alias | ( | string | $abstract,
|  | string | $alias
| ) |  |

注册一个类别名

参数

  string | $abstract | 类或接口名
  string | $alias | 别名

## bind()

bind | ( | string | $abstract,
|  |  | $concrete = `null`,
|  | bool | $shared = `false`
| ) |  |

注册绑定

参数

  string | $abstract | 类或接口名
  null | \Closure | string | $concrete | 返回类实例的闭包，或是类名
  bool | $shared | 是否共享

## bindIf()

bindIf | ( | string | $abstract,
|  |  | $concrete = `null`,
|  | bool | $shared = `false`
| ) |  |

注册绑定

在已经绑定时不会重复注册

参数

  string | $abstract | 类或接口名
  null | \Closure | string | $concrete | 返回类实例的闭包，或是类名
  bool | $shared | 是否共享

## bound()

bound | ( | string | $abstract | ) |

判断对应的类或接口是否已经注册

参数

  string | $abstract | 类或接口名

## call()

call | ( | callable | $callback,
|  | array | $parameters = `[]`,
|  | string | $default_method = `null`
| ) |  |

调用对应的方法，并自动注入依赖

参数

  callable | $callback | 对应的方法
  array | $parameters | 参数
  null | string | $default_method | 默认方法

返回
  mixed

## factory()

factory | ( | string | $abstract | ) |

获取一个解析对应类实例的闭包

参数

  string | $abstract | 类或接口名

## flush()

flush | ( |  | ) |

清除所有绑定和实例

## instance()

instance | ( | string | $abstract,
|  |  | $instance
| ) |  |

注册一个已有的实例，效果等同于单例绑定

参数

  string | $abstract | 类或接口名
  mixed | $instance | 实例

返回
  mixed

## make()

make | ( | string | $abstract,
|  | array | $parameters = `[]`
| ) |  |

获取一个绑定的实例

@template T

参数

  | class-string<T> | $abstract 类或接口名
  array | $parameters | 参数

返回
  \Closure|mixed|T 实例

在 Container 内被实现.

## singleton()

singleton | ( | string | $abstract,
|  |  | $concrete = `null`
| ) |  |

注册一个单例绑定

参数

  string | $abstract | 类或接口名
  null | \Closure | string | $concrete | 返回类实例的闭包，或是类名

## singletonIf()

singletonIf | ( | string | $abstract,
|  |  | $concrete = `null`
| ) |  |

注册一个单例绑定

在已经绑定时不会重复注册

参数

  string | $abstract | 类或接口名
  null | \Closure | string | $concrete | 返回类实例的闭包，或是类名

该接口的文档由以下文件生成:

- src/ZM/Container/ContainerInterface.php