Vapor 2.0 - 命令(Commands)

2017-08-07  本文已影响0人  韩云智VL

前往 Vapor 2.0 - 文档目录

除了由Vapor提供的命令(如服务(server)和路由(routes)),您还可以构建自己的自定义命令。

笔记
命令是使用定时任务(CRON jobs)来编写应用程序的一种很好的方式。

例子(Example)

要创建一个自定义控制台命令,我们必须首先创建一个新的.swift文件,导入Vapor和控制台(Console),并实现命令(Command)协议。

import Vapor
import Console

final class MyCustomCommand: Command {
    public let id = "my-command"
    public let help = ["This command does things, like foo, and bar."]
    public let console: ConsoleProtocol

    public init(console: ConsoleProtocol) {
        self.console = console
    }

    public func run(arguments: [String]) throws {
        console.print("running custom command...")
    }
}

配置初始化(Config Initializable)

为了使我们的命令可配置,将它与ConfigInitializable相一致。

extension MyCustomCommand: ConfigInitializable {
    public convenience init(config: Config) throws {
        let console = try config.resolveConsole()
        self.init(console: console)
    }
}

添加到Droplet(Add to Droplet)

在定制命令文件中工作之后,我们切换到我们的main.swift文件,并将定制命令添加到这样的Droplet中。

import Vapor

let config = try Config()
try config.addConfigurable(command: MyCustomCommand.init, name: "my-command")

let drop = try Droplet(config)

这允许Vapor访问我们的自定义命令,并让它知道在程序的--help部分显示它。

配置(Configure)

现在您已经将命令配置为可配置,只需将其添加到您的Config/droplet.json文件中的commands数组中。
Config/droplet.json

{
    ...,
    "commands": ["my-command"],
    ...,
}

编译完应用程序后,我们可以像这样运行我们的自定义命令。

vapor run my-command
上一篇 下一篇

猜你喜欢

热点阅读