Vapor 설명서 10: Provider
Adding a Provider
provider를 추가하려면 2~3단계가 필요합니다: Add Package, Import, Config(선택).
Add Package
Vapor의provider는 모두
-provider
로 끝납니다. GitHub에서 지원하는 모든Provider를 검색할 수 있습니다.프로그램에 provider를 추가하려면 Package.swift
파일에 의존 라이브러리로 추가해야 합니다.let package = Package(
name: "MyApp",
dependencies: [
.Package(url: "https://github.com/vapor/vapor.git", majorVersion: 1, minor: 0),
.Package(url: "https://github.com/vapor/mysql-provider.git", majorVersion: 1, minor: 0)
]
)
새 패키지를 추가하려면
vapor clean
또는 vapor build --clean
를 사용해야 합니다.Import
provider가 추가되면
import VaporFoo
로 도입할 수 있습니다. Foo
가provider의 이름입니다.예를 들어 MYSQL provider 도입:
import Vapor
import VaporMySQL
let drop = Droplet()
try drop.addProvider(VaporMySQL.Provider.self)
// ...
drop.run()
모든provider에는
Provider
클래스가 있는데 Droplet
의init
방법에서 이 클래스의 유형을 providers
수조에 추가합니다.Config
일부 provider가 설정해야 합니다. 예를 들어
VaporMySQL
파일이 필요합니다. 내용은 다음과 같습니다.{
"host": "localhost",
"user": "root",
"password": "",
"database": "vapor"
}
프로필이 필요하면 Droplet을 초기화할 때 오류 이상을 받아야 합니다.
Advanced
provider (설정 정보 초기화) 를 스스로 초기화할 수 있습니다.
import Vapor
import VaporMySQL
let drop = Droplet()
let mysql = try VaporMySQL.Provider(host: "localhost", user: "root", password: "", database: "vapor")
drop.addProvider(mysql)
...
drop.run()
Create a Provider
Provider를 만드는 것은 간단합니다.
Config/mysql.json
프로토콜을 준수하는 Vapor.Provider
클래스의 패키지만 만들면 됩니다.: 이것은
Provider
패키지의provider입니다. 메시지를 받고 Foo
시작할 때 메시지를 출력합니다.import Vapor
public final class Provider: Vapor.Provider {
public let message: String
public let provided: Providable
public convenience init(config: Config) throws {
guard let message = config["foo", "message"].string else {
throw SomeError
}
try self.init(message: message)
}
public init(message: String) throws {
self.message = message
}
public func afterInit(_ drop: Droplet) {
}
public func beforeServe(_ drop: Droplet) {
drop.console.info(message)
}
}
이 provider를 구성하려면
Droplet
파일이 필요합니다.{
"message": "The message to output"
}
초기화 방법
Config/foo.json
을 사용하여 수동으로 설정할 수도 있습니다.요약: Provider는 외부 파일을 도입하는 방법을 제공했고 이 장은 사용자 정의 패키지 파일을 만드는 방법을 소개했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.