PHP Класс phprs\util\IoCFactory

Автор: caoym
Показать файл Открыть проект Примеры использования класса

Защищенные свойства (Protected)

Свойство Тип Описание
$conf
$conf_file
$dict
$metas
$singletons

Открытые методы

Метод Описание
__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属性

Приватные методы

Метод Описание
buildConstructArgs ( ReflectionClass $class, array $properties ) : array 根据属性组合构造参数
getProperty ( string $value ) : object | string 获取属性 替换属性中的{}和@标记
replaceByDict ( string | array $value, $dict ) : void 替换字典

Описание методов

__construct() публичный Метод

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 类元信息, 如果不指定, 则自动从类文件中导出 ]

clearAnnotation() публичный статический Метод

去掉注解
public static clearAnnotation ( unknown $text )
$text unknown

create() публичный Метод

根据id得到对象实例 TODO 单实例间互相引用会是问题
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) 初始化实例, 在创建后, 调用构造函数前
Результат object

getClassName() публичный Метод

public getClassName ( string $id = null )
$id string

getConf() публичный Метод

获取配置的属性
public getConf ( string $id = null ) : array | null
$id string
Результат array | null

getConfFile() публичный Метод

取配置文件路径, 如果是通过数组创建的, 则返回null
public getConfFile ( ) : string | null
Результат string | null

getDictKeys() статический публичный Метод

从字符串中获取模板变量
static public getDictKeys ( string $value ) : array
$value string
Результат array

getMetaInfo() публичный Метод

获取元信息 会缓存
public getMetaInfo ( string $class ) : array
$class string
Результат array

getPropertyValue() статический публичный Метод

取属性值
static public getPropertyValue ( $refl, object $ins, string $name ) : mixed
$refl
$ins object
$name string
Результат mixed

hasClass() публичный Метод

配置中是否有指定id的类
public hasClass ( string $id ) : boolean
$id string
Результат boolean

injectDependent() публичный Метод

注入依赖
public injectDependent ( $refl, unknown $ins, unknown $meta, unknown $properties, $injector = null ) : void
$ins unknown
$meta unknown
$properties unknown
Результат void

setPropertyValue() статический публичный Метод

设置属性值, 允许设置private/protected属性
static public setPropertyValue ( $refl, $ins, string $name, mixed $value )
$refl
$name string 属性名
$value mixed 属性值

Описание свойств

$conf защищенное свойство

protected $conf

$conf_file защищенное свойство

protected $conf_file

$dict защищенное свойство

protected $dict

$metas защищенное свойство

protected $metas

$singletons защищенное свойство

protected $singletons