# php-abstracts-component
pf框架-abstracts：组件 的基类，提供组件实例化过程中的基础支持

## 注意事项
- 组件的参数配置参考 qingbing/php-config 组件
- 提供组件实例化过程中的基础支持
- 实例化：__CLASS__::getInstance($configs = null)
- 提供四种实例创建方式
  - 用数组直接指定属性
  - 直接指定文件名，不分组
  - 用数组的"c-file"指定文件名，不分组
  - 用数组的"c-file"指定文件名，"c-group"指定分组名


## 使用方法

### 1. 继承
```php
class DemoComponent extends Component
{
    /* @var mixed 属性一 */
    public $name;
    /* @var mixed 属性二 */
    public $version;

    /**
     * 属性赋值后执行函数
     */
    public function init()
    {

    }
}
```

### 2. 使用
```php
// 用数组直接指定属性
$component = \TestClass\DemoComponent::getInstance([
    'name' => 'special name',
    'version' => '1.0.0',
]);
var_dump($component);

// 直接指定文件名，不分组
$component = \TestClass\DemoComponent::getInstance('demo1');
var_dump($component);

// 用数组的"c-file"指定文件名，不分组
$component = \TestClass\DemoComponent::getInstance([
    'c-file' => 'demo2'
]);
var_dump($component);

// 用数组的"c-file"指定文件名，"c-group"指定分组名
$component = \TestClass\DemoComponent::getInstance([
    'c-file' => 'demo3',
    'c-group' => 'application',
]);
var_dump($component);
```

## ====== 异常代码集合 ======

异常代码格式：1003 - XXX - XX （组件编号 - 文件编号 - 代码内异常）
```
 - 100300101 : 组件实例化参数为空
 - 100300102 : 组件实例化参数错误
 - 100300103 : 组件实例化时参数必须为数组
 - 100300104 : 组件必须继承基类"\Abstracts\Component"
```