js
js 类用于在 zin 中生成 JS 代码。
继承关系
js ⇒ directive
构造
构造方法
定义
php
public function __construct(null|string|js|array ...$codes);参数
$codes:JS 代码,可以是字符串或js对象,也可以是可被忽略的null,或者是以上类型的数组。
示例:
php
$js1 = new js('console.log("hello world");');
$js2 = new js
(
'const message = "hello"',
'const name = "world";',
new js('console.log(message, name)'),
);辅助方法
通过与 js 类同名的辅助函数来快速创建 js 对象。
定义
php
function js(null|string|js|array ...$codes): js;参数
$codes:JS 代码,可以是字符串或js对象,也可以是可被忽略的null,或者是以上类型的数组。
返回值
js对象。
例如:
php
js
(
'const message = "hello"',
'const name = "world";',
js('console.log(message, name)'),
);提示
推荐使用辅助方法 js() 来创建 js 对象,相比较 new js() 语法,辅助方法更加简洁。
属性
定义
php
/** 当前已定义的代码行。 */
protected array $jsLines = array();方法
__call
魔术方法,用于通过 xxxIf 的方式根据条件调用对象上的 xxx 方法。
定义
php
public function __call(string $name, array $args): self;call
调用一个函数。
定义
php
public function call(string $func, mixed ...$args): self;参数
$func:要调用的 JS 函数名或函数表达式。$args:要传递给函数的参数,这些参数会在传递前依次转换 JSON。
返回值
self自身,支持链式调用。
示例:
php
js()->call('console.log', 'hello world');
// 等价于:js('console.log("hello world");');do
执行一段 JS 代码。
定义
php
public function do(null|string|js|array ...$codes): self;参数
$codes:JS 代码,可以是字符串或js对象,也可以是以上类型的数组,如果是null则被忽略。
返回值
self自身,支持链式调用。
示例:
php
js()->do('console.log("hello world");');let
定义一个 JS 变量。
定义
php
public function let(string $name, mixed $value): self;参数
$name:变量名。$value:变量值,会在传递前转换 JSON。
返回值
self自身,支持链式调用。
const
定义一个 JS 常量。
定义
php
public function const(string $name, mixed $value): self;参数
$name:常量名。$value:常量值,会在传递前转换 JSON。
返回值
self自身,支持链式调用。
globalVar
定义一个全局变量。
定义
php
public function globalVar(string $name, mixed $value): self;参数
$name:变量名。$value:变量值,会在传递前转换 JSON。
返回值
self自身,支持链式调用。
beginIf
开始一个 if 语句块。
定义
php
public function beginIf(string ...$conditions): self;参数
$conditions:if 语句块的条件,可以是多个条件,多个条件之间为&&关系。
返回值
self自身,支持链式调用。
elseIf
else if 语句块。
定义
php
public function elseIf(string ...$conditions): self;参数
$conditions:else if 语句块的条件,可以是多个条件,多个条件之间为&&关系。
返回值
self自身,支持链式调用。
else
else 语句块。
定义
php
public function else(): self;返回值
self自身,支持链式调用。
endIf
结束一个 if 语句块。
定义
php
public function endIf(): self;返回值
self自身,支持链式调用。
scopeBegin
开始一个立即执行函数实现的作用域。
定义
php
public function scopeBegin(): self;返回值
self自身,支持链式调用。
scopeEnd
结束一个立即执行函数实现的作用域。
定义
php
public function scopeEnd(): self;返回值
self自身,支持链式调用。
appendLine
追加一行 JS 代码。
定义
php
public function appendLine(string ...$code): self;参数
$code:JS 代码,可以使用多个参数指定代码的部分,最终会通过空格拼接为一行。
返回值
self自身,支持链式调用。
appendLines
追加多行 JS 代码。
定义
php
public function appendLines(null|string|js|array ...$lines): self;参数
$lines:JS 代码,可以是字符串或js对象,也可以是以上类型的数组,如果是null则被忽略。
返回值
self自身,支持链式调用。
appendCode
追加一段 JS 代码。
定义
php
public function appendCode(null|string|js|array ...$codes): self;参数
$codes:JS 代码,可以是字符串或js对象,也可以是以上类型的数组,如果是null则被忽略。
返回值
self自身,支持链式调用。
toJS
转换为 JS 代码。
定义
php
public function toJS(string $joiner = "\n"): string;参数
$joiner:代码行之间的连接符,默认为换行符。
返回值
string返回转换后的 JS 代码。
toScopeJS
转换为包装了立即执行函数实现的作用域的 JS 代码。
定义
php
public function toScopeJS(string $joiner = "\n"): string;参数
$joiner:代码行之间的连接符,默认为换行符。
返回值
string返回转换后的 JS 代码。
静态成员
__callStatic
魔术方法,用于创建 window 对象上的成员辅助访问对象。
定义
php
public static function __callStatic(string $name, array $args): jsContext;参数
$name:window对象上的成员名称。$args:如果有指定参数,则将成员作为函数进行调用,并将参数作为所调用的函数参数。
返回值
jsContext对象。
scope
使用立即执行函数作用域包装 JS 代码以实现独立的作用域。
定义
php
public static function scope(null|string|js|array ...$codes): string;参数
$codes:JS 代码,可以是字符串或js对象,也可以是以上类型的数组,如果是null则被忽略。
返回值
string返回包装后的 JS 代码。
json
将 PHP 变量转换为 JSON 字符串。
定义
php
public static function json(mixed $var): string;参数
$var:要转换的 PHP 变量。
返回值
string返回转换后的 JSON 字符串。
context
创建给定 JS 值的上下文操作辅助对象 jsContext。
定义
php
public static function context(mixed $value, null|string|bool $name = null, null|string|js|array ...$codes): jsContext参数
$value:要创建上下文操作辅助对象的 JS 值。$name:上下文操作辅助对象的名称,如果为null则自动生成。$codes:初始化的 JS 代码,可以是字符串或js对象,也可以是以上类型的数组,如果是null则被忽略。
返回值
jsContext对象。
zui
创建 window.zui 的上下文操作辅助对象 jsContext。
定义
php
public static function zui(?string $name = null): jsContext参数
$name:window.zui对象上的成员名称,如果为null则返回window.zui的上下文操作辅助对象。
返回值
jsContext对象。
jquery
创建 jQuery 辅助操作实例 jQuery。
定义
php
public static function jquery(string $selector, ?string $name = null, null|string|js|array ...$codes): jquery参数
$selector:jQuery 选择器。$name:jQuery 对象上的成员名称,如果为null则返回 jQuery 辅助操作实例jQuery。$codes:初始化的 JS 代码,可以是字符串或js对象,也可以是以上类型的数组,如果是null则被忽略。
返回值
jQuery对象。
callback
创建 js 回调函数代码生成对象实例 jsCallback。
定义
php
public static function callback(string ...$args): jsCallback参数
$args:回调函数的参数列表。
返回值
jsCallback对象。