## ViewBuilder
> 通過`ViewBuilder`視圖構建類,我們可以映射和擴展其他構建器,已內置的構建器有`table`、`form`
### 映射表格構建器
~~~
$tableBuilder = ViewBuilder::table();
~~~
### 映射表單構建器
~~~
$formBuilder = ViewBuilder::form();
~~~
### 自定義構建器
+ 在`buider`目錄下創建構建器目錄:如`panel`
+ 在`panel`目錄下創建構建類,如:`Builder.php`
~~~
namespace app\builder\panel;
use yii\base\BaseObject;
use app\builder\contract\BuilderInterface;
class Builder extends BaseObject implements BuilderInterface
{
/**
* 渲染組件
* @param Controller $context
* @return string
* @author cleverstone
* @since 1.0
*/
public function render(Controller $context)
{
}
}
~~~
> 注意:`Builder.php`必須繼承`BaseObject`且繼承`BuilderInterface`結構
+ 在`ViewBuilder`中注冊`panel`構建器
~~~
namespace app\builder;
use yii\base\Component;
use yii\base\NotSupportedException;
/**
* 視圖構建器
*
* @method \app\builder\panel\Builder panel(array $config = []) static panel構建器方法
* @author cleverstone
* @since 1.0
*/
class ViewBuilder extends Component
{
/**
* yii-manager version
*
* @var string
*/
public $version = '1.0.0';
/**
* 注冊構建器
*
* @var array
* @since 1.0
*/
public static $builderMap = [
'panel' => \app\builder\panel\Builder::class, // panel
];
}
~~~
+ 其他實現建議參考內置`table`構建器