Skip to content

wg

zin 中所有的部件都继承自基类 wgwg 中定义了许多属性与方法,子类通过重写这些属性与方法实现自定义部件。

静态属性

defineProps

已定义的部件属性,可包括属性的类型和默认值(仅支持基本类型的默认值)。

  • 类型:array|string
  • 可访问性:protected

部件属性是用户在部件实例上设置的数据。通常部件上可供设置的属性由部件设计时决定,大部分情况下开发者可以选择性的设置这些属性。部件在渲染时会根据实际的属性数据决定如何渲染从而实现多种个性化功能。

defaultProps

已定义的部件属性默认值,可以用于定义复杂类型的默认值。

  • 类型:array
  • 可访问性:protected

defineBlocks

已定义的部件内部块。

  • 类型:array
  • 可访问性:protected

内部块是 zin 部件的一种特殊属性,它允许用户设置部件内部不同的内容区域,这样可以方便的将内容插入到指定的位置。

wgToBlockMap

已定义的部件与内部块的映射关系。

  • 类型:array
  • 可访问性:protected

definedPropsMap

已定义的部件与属性的映射关系。

  • 类型:array
  • 可访问性:protected

静态方法

getPageCSS

获取部件外部 css 代码。

定义

php
public static function getPageCSS(): string|false;
  • 返回值:css 代码或失败标识

getPageJS

获取部件外部 js 代码。

定义

php
public static function getPageJS(): string|false;
  • 返回值:js 代码或失败标识

checkPageResources

检查部件外部资源(cssjs),若存在则加载。

该方法通过 getPageCSSgetPageJS 方法获取外部资源。

定义

php
protected static function checkPageResources(): void;

wgBlockMap

获取当前部件的内部块映射关系。

定义

php
public static function wgBlockMap(): array;
  • 返回值:内部块映射关系

getBlockNameForWg

获取给定部件对应的内部块名称。

定义

php
public static function getBlockNameForWg(wg|string $wg): string;
  • 参数:
    • $wg 部件或部件名
  • 返回值:内部块名称

nextGid

获取下一个 gid 编号,用于赋值给部件的 gid 属性。

定义

php
public static function nextGid(): int;
  • 返回值:gid 编号

getDefinedProps

获取给定部件的已定义属性。

定义

php
protected static function getDefinedProps($name = null): array;
  • 参数:
    • $name 部件名称
  • 返回值:已定义属性

getDefaultProps

获取给定部件已定义属性的默认值。

定义

php
protected static function getDefaultProps(string|null $wgName = null): array;
  • 参数:
    • $name 部件名称
  • 返回值:已定义属性的默认值

构造函数

定义

php
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 元素。

定义:

php
public function isDomElement(): false;
  • 返回值:恒为 false

isMatch

判断部件是否与给定的选择器匹配。

定义:

php
public function isMatch(string|array|object $selectors): bool;
  • 参数:
    • $selector 选择器
  • 返回值:匹配结果

buildDom

将部件构建为 dom 对象。

定义

php
public function buildDom(): dom;
  • 返回值:dom 对象

render

将部件渲染为 html 字符串。

定义:

php
public function render(): string;
  • 返回值:html 字符串

display

渲染部件并输出(通过 echo)至页面。

定义:

php
public function display(array $options = array()): wg;
  • 参数:

    • $options 渲染选项
  • 返回值:部件本身

created

部件生命周期钩子,在部件创建时执行,函数体为空,自类可重写该函数实现特定功能。

定义

php
protected function created(): void;

buildBefore

构建 before 内部块并返回。

定义

php
protected function buildBefore(): mixed;
  • 返回值:before 内部块

buildAfter

构建 after 内部块并返回。

定义

php
protected function buildAfter(): mixed;
  • 返回值:after 内部块

build

构建部件内容。

定义

php
protected function build(): wg;
  • 返回值:部件渲染后的主要内容

buildEvents

构建部件绑定的事件。

定义

php
protected function buildEvents(): string|null;
  • 返回值:JavaScript 事件绑定代码。

onAddBlock

部件添加内部块时的监听函数。

定义

php
protected function onAddBlock(mixed $child, string $name): mixed;
  • 参数:
    • $child 被添加的内部块
    • $name 被添加的内部块名称
  • 返回值:被添加的内部块

onAddChild

部件添加子元素(非内部块)时的监听函数。

定义

php
protected function onAddChild(mixed $child): mixed;
  • 参数:
    • $child 被添加的子元素
  • 返回值:被添加的子元素

onSetProp

部件设置属性时的监听函数。

定义

php
protected function onSetProp($prop, $value): void;
  • 参数:
    • $prop 属性名
    • $value 属性值

onGetProp

部件获取属性时的监听函数。

定义

php
protected function onGetProp($prop, $defaultValue): mixed;
  • 参数:
    • $prop 属性名
    • $defaultValue 属性不存在时的默认值
  • 返回值:属性值

add

为部件添加子元素或指令。

定义

php
public function add($item, $blockName = 'children'): wg;
  • 参数:
    • $item 子元素或指令
    • $blockName 添加到的块名称
  • 返回值:部件本身

addToBlock

为内部块追加子元素。

定义

php
public function addToBlock(array|string $name, mixed $child = null): void;
  • 参数:
    • $name 内部块名称
    • $child 追加的子元素

$name 为数组时表示内部块名称和追加的子元素的映射,$child 参数需省略。

children

获取部件子元素。

定义

php
public function children(): mixed;
  • 返回值:部件子元素

block

根据给定的名称获取对应的内部块。

定义

php
public function block(string $name): mixed;
  • 参数:
    • $name 内部块名称
  • 返回值:内部块

hasBlock

判断部件是否包含给定的内部块。

定义

php
public function hasBlock($name): bool;
  • 参数:
    • $name 内部块名称
  • 返回值:判断结果

directive

使部件应用指令,这里的指令可以为:prop(属性)、class(css 类)、style(样式)、cssVar(css 变量)、html(html 元素)、text(普通文本)、block(内部块)。

定义

php
public function directive(object &$directive, string $blockName): void;
  • 参数:
    • $directive 指令对象
    • $blockName 应用指令的内部块名称

prop

获取部件属性值。

定义

php
public function prop(string $name, mixed $defaultValue = null): mixed;
  • 参数:
    • $name 属性名称
    • $defaultValue 属性值不存在时的默认值
  • 返回值:属性值

setProp

为部件设置属性值。

定义

php
public function setProp(string|array $prop, mixed $value = null): wg;
  • 参数:
    • $prop 属性名称
    • $value 属性值
  • 返回值:组件本身

$prop 类型为数组时表示属性名到属性值的映射,$value 参数需省略。

hasProp

判断部件是否包含给定的属性。

定义

php
public function hasProp(string ...$name): bool;
  • 参数:
    • $name 属性名
  • 返回值:判断结果

setDefaultProps

设置部件属性的默认值。

定义

php
public function setDefaultProps(array $props): void;
  • 参数:
    • $props 属性名到属性值的映射

getRestProps

获取除 defineProps 以外的部件属性。

定义

php
public function getRestProps(): array;
  • 返回值:属性名到属性值的映射

type

获取部件类型(类名)。

定义

php
public function type(): string;
  • 返回值: 部件类型

shortType

获取部件的简短类型(忽略命名空间)。

定义

php
public function shortType(): string;
  • 返回值: 部件类型

id

获取部件 id 属性。

定义

php
public function id(): string|int;
  • 返回值:部件 id 属性

toJsonData

将部件转换为类 json 数组。

定义

php
public function toJsonData(): array;
  • 返回值:类 json 数组

checkErrors

debug 模式下检查部件错误并生成错误信息(通过 trigger_error)。

定义

php
protected function checkErrors(): void;

onCheckErrors

debug 模式下检查部件错误时的监听函数。

定义

php
protected function onCheckErrors(): array|null
  • 返回值:错误信息

https://zentao.net