4.0.组件

组件

组件系统在qingmvc中占有很大比重。 很多内置实现和扩展功能都是基于组件管理。

组件配置

class方式

creator方式

案例

//组件列表
'components'=>
[
    //demo01组件
    'demo01'=>
    [
        'class'=>'\qing\com\Demo01',//指定组件类
        'name'=>'xianwang',//属性1
        'nickname'=>'小旺'//属性2
    ],
    //demo0101组件
    'demo0101'=>
    [
        'creator'=>'\qing\com\Demo01Creator',//指定组件创建器
        'name'=>'qingmvc',//属性,优先级高,会覆盖组件创建器设置的属性
        'nickname'=>'qingcms'
    ],
]

组件创建器

  1. 组件创建器需要继承qing\com\ComCreator或实现接口qing\com\ComCreatorInterface
  2. 可在组件创建器内部设置组件属性,也可以在组件配置中设置;组件配置的优先级更高,会覆盖组件创建器设置的属性

Demo01Creator.php

<?php
namespace qing\com;
use qing\com\ComCreator;
/**
 */
class Demo01Creator extends ComCreator{
    /**
     * @see \qing\com\ComCreator::create()
     */
    public function create(){
        $com=new Demo01();
        $com->name='demo01';//设置属性,优先级低
        return $com;
    }
}
?>