wg
zin 中所有的部件都继承自基类 wg,wg 中定义了许多属性与方法,子类通过重写这些属性与方法实现自定义部件。
静态属性
defineProps
已定义的部件属性,可包括属性的类型和默认值(仅支持基本类型的默认值)。
- 类型:
array|string - 可访问性:
protected
部件属性是用户在部件实例上设置的数据。通常部件上可供设置的属性由部件设计时决定,大部分情况下开发者可以选择性的设置这些属性。部件在渲染时会根据实际的属性数据决定如何渲染从而实现多种个性化功能。
defaultProps
已定义的部件属性默认值,可以用于定义复杂类型的默认值。
- 类型:
array - 可访问性:
protected
defineBlocks
已定义的部件内部块。
- 类型:
array - 可访问性:
protected
内部块是 zin 部件的一种特殊属性,它允许用户设置部件内部不同的内容区域,这样可以方便的将内容插入到指定的位置。
wgToBlockMap
已定义的部件与内部块的映射关系。
- 类型:
array - 可访问性:
protected
definedPropsMap
已定义的部件与属性的映射关系。
- 类型:
array - 可访问性:
protected
静态方法
getPageCSS
获取部件外部 css 代码。
定义
public static function getPageCSS(): string|false;- 返回值:
css代码或失败标识
getPageJS
获取部件外部 js 代码。
定义
public static function getPageJS(): string|false;- 返回值:
js代码或失败标识
checkPageResources
检查部件外部资源(css 与 js),若存在则加载。
该方法通过 getPageCSS 和 getPageJS 方法获取外部资源。
定义
protected static function checkPageResources(): void;wgBlockMap
获取当前部件的内部块映射关系。
定义
public static function wgBlockMap(): array;- 返回值:内部块映射关系
getBlockNameForWg
获取给定部件对应的内部块名称。
定义
public static function getBlockNameForWg(wg|string $wg): string;- 参数:
$wg部件或部件名
- 返回值:内部块名称
nextGid
获取下一个 gid 编号,用于赋值给部件的 gid 属性。
定义
public static function nextGid(): int;- 返回值:
gid编号
getDefinedProps
获取给定部件的已定义属性。
定义
protected static function getDefinedProps($name = null): array;- 参数:
$name部件名称
- 返回值:已定义属性
getDefaultProps
获取给定部件已定义属性的默认值。
定义
protected static function getDefaultProps(string|null $wgName = null): array;- 参数:
$name部件名称
- 返回值:已定义属性的默认值
构造函数
定义
public function __construct(mixed ...$args );zin 部件可以向构造函数传递:
- 属性,如
set::type('button') - css 类,如
setClass('btn') - 样式,如
setStyle('color', '#FFF') - 子元素,如
'返回'、span('确定') - 内部块,如
to::prefix(icon('return'))
等参数,这些参数决定了部件的渲染结果。
属性
props
记录部件所有属性的 props 类。
- 类型:
props - 可访问性:
public
blocks
部件的内部块。
- 类型:
array - 可访问性:
public
parent
部件的父类。
- 类型:
wg|null - 可访问性:
public
gid
部件标识。
- 类型:
int - 可访问性:
public
displayed
部件是否已经显示。
- 类型:
bool - 可访问性:
public
renderOptions
部件渲染选项。
- 类型:
array - 可访问性:
protected
方法
isDomElement
判断是否为 Dom 元素。
定义:
public function isDomElement(): false;- 返回值:恒为
false
isMatch
判断部件是否与给定的选择器匹配。
定义:
public function isMatch(string|array|object $selectors): bool;- 参数:
$selector选择器
- 返回值:匹配结果
buildDom
将部件构建为 dom 对象。
定义
public function buildDom(): dom;- 返回值:dom 对象
render
将部件渲染为 html 字符串。
定义:
public function render(): string;- 返回值:html 字符串
display
渲染部件并输出(通过 echo)至页面。
定义:
public function display(array $options = array()): wg;参数:
$options渲染选项
返回值:部件本身
created
部件生命周期钩子,在部件创建时执行,函数体为空,自类可重写该函数实现特定功能。
定义
protected function created(): void;buildBefore
构建 before 内部块并返回。
定义
protected function buildBefore(): mixed;- 返回值:
before内部块
buildAfter
构建 after 内部块并返回。
定义
protected function buildAfter(): mixed;- 返回值:
after内部块
build
构建部件内容。
定义
protected function build(): wg;- 返回值:部件渲染后的主要内容
buildEvents
构建部件绑定的事件。
定义
protected function buildEvents(): string|null;- 返回值:
JavaScript事件绑定代码。
onAddBlock
部件添加内部块时的监听函数。
定义
protected function onAddBlock(mixed $child, string $name): mixed;- 参数:
$child被添加的内部块$name被添加的内部块名称
- 返回值:被添加的内部块
onAddChild
部件添加子元素(非内部块)时的监听函数。
定义
protected function onAddChild(mixed $child): mixed;- 参数:
$child被添加的子元素
- 返回值:被添加的子元素
onSetProp
部件设置属性时的监听函数。
定义
protected function onSetProp($prop, $value): void;- 参数:
$prop属性名$value属性值
onGetProp
部件获取属性时的监听函数。
定义
protected function onGetProp($prop, $defaultValue): mixed;- 参数:
$prop属性名$defaultValue属性不存在时的默认值
- 返回值:属性值
add
为部件添加子元素或指令。
定义
public function add($item, $blockName = 'children'): wg;- 参数:
$item子元素或指令$blockName添加到的块名称
- 返回值:部件本身
addToBlock
为内部块追加子元素。
定义
public function addToBlock(array|string $name, mixed $child = null): void;- 参数:
$name内部块名称$child追加的子元素
当 $name 为数组时表示内部块名称和追加的子元素的映射,$child 参数需省略。
children
获取部件子元素。
定义
public function children(): mixed;- 返回值:部件子元素
block
根据给定的名称获取对应的内部块。
定义
public function block(string $name): mixed;- 参数:
$name内部块名称
- 返回值:内部块
hasBlock
判断部件是否包含给定的内部块。
定义
public function hasBlock($name): bool;- 参数:
$name内部块名称
- 返回值:判断结果
directive
使部件应用指令,这里的指令可以为:prop(属性)、class(css 类)、style(样式)、cssVar(css 变量)、html(html 元素)、text(普通文本)、block(内部块)。
定义
public function directive(object &$directive, string $blockName): void;- 参数:
$directive指令对象$blockName应用指令的内部块名称
prop
获取部件属性值。
定义
public function prop(string $name, mixed $defaultValue = null): mixed;- 参数:
$name属性名称$defaultValue属性值不存在时的默认值
- 返回值:属性值
setProp
为部件设置属性值。
定义
public function setProp(string|array $prop, mixed $value = null): wg;- 参数:
$prop属性名称$value属性值
- 返回值:组件本身
当 $prop 类型为数组时表示属性名到属性值的映射,$value 参数需省略。
hasProp
判断部件是否包含给定的属性。
定义
public function hasProp(string ...$name): bool;- 参数:
$name属性名
- 返回值:判断结果
setDefaultProps
设置部件属性的默认值。
定义
public function setDefaultProps(array $props): void;- 参数:
$props属性名到属性值的映射
getRestProps
获取除 defineProps 以外的部件属性。
定义
public function getRestProps(): array;- 返回值:属性名到属性值的映射
type
获取部件类型(类名)。
定义
public function type(): string;- 返回值: 部件类型
shortType
获取部件的简短类型(忽略命名空间)。
定义
public function shortType(): string;- 返回值: 部件类型
id
获取部件 id 属性。
定义
public function id(): string|int;- 返回值:部件
id属性
toJsonData
将部件转换为类 json 数组。
定义
public function toJsonData(): array;- 返回值:类
json数组
checkErrors
在 debug 模式下检查部件错误并生成错误信息(通过 trigger_error)。
定义
protected function checkErrors(): void;onCheckErrors
在 debug 模式下检查部件错误时的监听函数。
定义
protected function onCheckErrors(): array|null- 返回值:错误信息