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
对象。