# 插件信息定义
# 前言
由于此文件是 JSON 格式文件,所以您必须按照 JSON 的规范来写。错误的 package.json
将导致插件无法运行和皮肤站的插件列表无法加载。在编写完此文件之后,您可以前往 BeJSON (opens new window) 进行 JSON 校验。
# 字段总览
# 详细介绍
# name
这个是插件的唯一标识符,推荐使用 kebab-case 命名法,如:my-plugin
、this-is-an-example
。
切记,不同的 name
值代表不同的插件,所以您千万不能将版本信息写在此处。Blessing Skin Server 会认为这是两个插件!
# version
这个表示插件的版本。这个字段的值类型必须是字符串。
Blessing Skin Server 并没有对此字段作出内容限定,但我们建议它的值为数字,如1.0
、3.2.1
,不建议带字母 “v”。当然,若您使用如 “Jessie” 这样的词作为版本,也是可以的。
使用数字作为版本的好处是,利于插件市场进行版本对比,以提示用户进行插件更新和升级。
# title
这是插件在 “插件管理” 页上显示的名称,可以使用任意 UTF-8 字符集支持的字符。此字段的值与其它插件重复不影响各自的运行,但会给用户带来麻烦。
# description
这是对插件的描述,长度适中就好。
# author
插件的作者。
# namespace
这里定义了插件的命名空间,不能重复。插件 src
目录下的所有类都会被加载到这个命名空间下。调用插件中定义的视图时也必须加上此命名空间。
由于 JSON 的原因和 PHP 中的命名空间使用反斜杠符号,因此要注意在此字段中使用转义 \\
来表示 \
。如:Foo\\Bar
表示 PHP 中的 Foo\Bar
。
# config
这里定义「插件配置」页面是哪个视图文件,如果您的插件没有或不需要「插件配置」页,则可省略此字段。如果您的插件配置页面位于 views/config.blade.php
,则也可以省略此字段,Blessing Skin 能自动识别。
# url
这个表示插件的 URL,可以是简介页,也可以是开源仓库的地址。这个字段的值不影响插件运行,也可以省略不写。
# require
这个字段用于声明插件的依赖,更多介绍请移步 声明依赖
# enchants
5.0.0+
enchants
字段定义了影响插件行为的信息。这个字段还细分有不同的字段。
# providers
该字段的类型为字符串数组。利用字段可以定义要加载的 服务提供者 (opens new window)。
在指定要加载的服务提供者时,可省略命名空间,因为所有的服务提供者都 必须 从插件指定的命名空间中加载。此外,还可以省略类名后面的 ServiceProvider
。
例如:
{
"namespace": "Example",
"enchants": {
"providers": [
"Example\\MyServiceProvider",
"Our"
]
}
}
上面的例子定义了两个服务提供者。第一个为全写的形式;对于第二个,Blessing Skin 会根据 namespace
自动补全为 Example\\OurServiceProvider
。
更多内容请阅读本文档关于 服务提供者 部分。
# conflicts
该字段的结构与定义插件依赖类似。具体作用请阅读 声明插件冲突。
# config
利用这个字段可指定配置页面。与根 config
字段不同的是,根 config
字段指定的是位于插件中的一个视图,而这个 config
字段指定的是插件中的一个类的类名。
当声明了这个字段之后,用户在「插件页面」中点击「配置」时,就会执行这个字段所指向的类中的公有 render
方法。您可以把这个类看作是一个控制器,render
方法就相当于控制器方法,因此您可以在 render
方法中进行任意的逻辑处理,最后返回视图或其它内容。
这个 config
字段的优先级将高于根 config
字段。
# icon
利用这个字段可以指定插件在「插件管理」页面中的图标。目前该字段的值是一个对象,对象中包含两个属性:一个是 fa
属性,用于指定显示哪个 Font Awesome 图标(不需要加 fa-
前缀);另一个是 bg
属性,用于指定图标的背景颜色(暂时必须指定为 AdminLTE v3 所支持的那些颜色名)。
效果: