Property | Type | Description | |
---|---|---|---|
$conf | |||
$conf_file | |||
$dict | |||
$metas | |||
$singletons |
Method | Description | |
---|---|---|
__construct ( string | array $conf = null, array $dict = null, array $metas = null ) | ||
clearAnnotation ( unknown $text ) | 去掉注解 | |
create ( string $id, array $construct_args = null, array $properties = null, callable $injector = null, callable $init = null ) : object | 根据id得到对象实例 TODO 单实例间互相引用会是问题 | |
getClassName ( string $id = null ) | ||
getConf ( string $id = null ) : array | null | 获取配置的属性 | |
getConfFile ( ) : string | null | 取配置文件路径, 如果是通过数组创建的, 则返回null | |
getDictKeys ( string $value ) : array | 从字符串中获取模板变量 | |
getMetaInfo ( string $class ) : array | 获取元信息 会缓存 | |
getPropertyValue ( $refl, object $ins, string $name ) : mixed | 取属性值 | |
hasClass ( string $id ) : boolean | 配置中是否有指定id的类 | |
injectDependent ( $refl, unknown $ins, unknown $meta, unknown $properties, $injector = null ) : void | 注入依赖 | |
setPropertyValue ( $refl, $ins, string $name, mixed $value ) | 设置属性值, 允许设置private/protected属性 |
Method | Description | |
---|---|---|
buildConstructArgs ( ReflectionClass $class, array $properties ) : array | 根据属性组合构造参数 | |
getProperty ( string $value ) : object | string | 获取属性 替换属性中的{}和@标记 | |
replaceByDict ( string | array $value, $dict ) : void | 替换字典 |
public __construct ( string | array $conf = null, array $dict = null, array $metas = null ) | ||
$conf | string | array | 文件或者配置数组 配置数组格式如下: [ id=>[ "class"=>类名, "singleton"=>false, 是否是单例, 如果是, 则只会创建一份(同一个工厂内) "pass_by_construct"=false, 属性是否通过构造函数传递, 如果不是, 则通过访问属性的方式传递 "properties"=>{ 属性名=>属性值 } |
$dict | array | 设置字典 配置文件中, 属性值可以使用{key}的方式指定模板变量, 注入属性到实例是这些模板变 量会被替换成setDict方法设置的值 |
$metas | array | 类元信息, 如果不指定, 则自动从类文件中导出 ] |
public static clearAnnotation ( unknown $text ) | ||
$text | unknown |
public create ( string $id, array $construct_args = null, array $properties = null, callable $injector = null, callable $init = null ) : object | ||
$id | string | |
$construct_args | array | 构造函数的参数 |
$properties | array | 类属性, 覆盖配置文件中的属性 |
$injector | callable | fun($src), 获取注入值的方法 |
$init | callable | fun($inst, &$got) 初始化实例, 在创建后, 调用构造函数前 |
return | object |
public getConfFile ( ) : string | null | ||
return | string | null |
static public getDictKeys ( string $value ) : array | ||
$value | string | |
return | array |
public getMetaInfo ( string $class ) : array | ||
$class | string | |
return | array |
public injectDependent ( $refl, unknown $ins, unknown $meta, unknown $properties, $injector = null ) : void | ||
$ins | unknown | |
$meta | unknown | |
$properties | unknown | |
return | void |
static public setPropertyValue ( $refl, $ins, string $name, mixed $value ) | ||
$refl | ||
$name | string | 属性名 |
$value | mixed | 属性值 |