mirror of https://github.com/vapor/docs.git
82 lines
3.0 KiB
Markdown
82 lines
3.0 KiB
Markdown
# Folder Structuur
|
|
|
|
Nu dat je je eerste Vapor app hebt gemaakt, gebouwd en uitgevoerd, laten we een moment nemen om jezelf vertrouwd te maken met Vapor's folder structuur. De structuur is gebaseerd op [SPM](spm.md)'s folder structuur, dus als je al met SPM hebt gewerkt zou deze je bekend voor moeten komen.
|
|
|
|
```
|
|
.
|
|
├── Public
|
|
├── Sources
|
|
│ ├── App
|
|
│ │ ├── Controllers
|
|
│ │ ├── Migrations
|
|
│ │ ├── Models
|
|
│ │ ├── configure.swift
|
|
│ │ ├── entrypoint.swift
|
|
│ │ └── routes.swift
|
|
│
|
|
├── Tests
|
|
│ └── AppTests
|
|
└── Package.swift
|
|
```
|
|
|
|
The secties hieronder leggen elk deel van de folder structuur uit in meer detail.
|
|
|
|
## Public
|
|
|
|
Deze map bevat alle publieke bestanden die door uw app geserveerd zullen worden als `FileMiddleware` is ingeschakeld. Dit zijn meestal afbeeldingen, stylesheets en browserscripts. Bijvoorbeeld, een verzoek aan `localhost:8080/favicon.ico` zal controleren of `Public/favicon.ico` bestaat en deze terugsturen.
|
|
|
|
U moet `FileMiddleware` aanzetten in uw `configure.swift` bestand voordat Vapor publieke bestanden kan serveren.
|
|
|
|
```swift
|
|
// Dient bestanden op uit `Public/` directory
|
|
let fileMiddleware = FileMiddleware(
|
|
publicDirectory: app.directory.publicDirectory
|
|
)
|
|
app.middleware.use(fileMiddleware)
|
|
```
|
|
|
|
## Sources
|
|
|
|
Deze map bevat alle Swift bronbestanden voor je project.
|
|
De mappen op het hoogste niveau, `App` en `Run`, geven de modules van uw pakket weer,
|
|
zoals aangegeven in het [SPM](spm.md) manifest.
|
|
|
|
### App
|
|
|
|
Dit is waar al je applicatie logica naartoe gaat.
|
|
|
|
#### Controllers
|
|
|
|
Controllers zijn een goede manier om applicatie logica te groeperen. De meeste controllers hebben veel functies die een verzoek aannemen en een soort antwoord teruggeven.
|
|
|
|
#### Migrations
|
|
|
|
De migraties map is waar uw database migraties naar toe gaan als u Fluent gebruikt.
|
|
|
|
#### Models
|
|
|
|
De models map is een goede plaats om uw `Content` structs of Fluent `Model`s op te slaan.
|
|
|
|
#### configure.swift
|
|
|
|
Dit bestand bevat de `configure(_:)` functie. Deze methode wordt aangeroepen door `entrypoint.swift` om de nieuw aangemaakte `Application` te configureren. Dit is waar je services zoals routes, databases, providers, en meer moet registreren.
|
|
|
|
#### entrypoint.swift
|
|
|
|
Dit bestand bevat het `@main`-toegangspunt voor de toepassing die uw Vapor-toepassing instelt, configureert en uitvoert.
|
|
|
|
#### routes.swift
|
|
|
|
Dit bestand bevat de `routes(_:)` functie. Deze methode wordt aangeroepen aan het einde van `configure(_:)` om routes te registreren voor je `Application`.
|
|
|
|
## Tests
|
|
|
|
Elke niet-uitvoerbare module in je `Sources` folder kan een overeenkomstige folder hebben in `Tests`. Deze bevalt code gebouwd op de `XCTest` module om je pakket te testen. Testen kunnen uitgevoerd worden door `swift test` te gebruiken op de command line of door ⌘+U in te drukken in Xcode.
|
|
|
|
### AppTests
|
|
|
|
Deze folder bevat de unit tests voor code in je `App` module.
|
|
|
|
## Package.swift
|
|
|
|
Tenslotte is er [SPM](spm.md)'s pakket manifest. |