You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
issue included are:
#861#836#818#812
Some issues have been fully translated as well:
closes#791closes#788closes#811
---------
Co-authored-by: Joannis Orlandos <joannis@orlandos.nl>
Zodra `FileMiddleware` is geregistreerd, kan een bestand als `Public/images/logo.png` worden gekoppeld vanuit een Leaf template als `<img src="/images/logo.png"/>`.
126
126
127
+
Als je server is opgenomen in een Xcode Project, zoals een iOS app, gebruik dan dit in de plaats:
128
+
129
+
```swift
130
+
let file =tryFileMiddleware(bundle: .main, publicDirectory: "Public")
131
+
```
132
+
133
+
Zorg er ook voor dat je Folder References gebruikt in plaats van Groups in Xcode om de mappenstructuur in resources te behouden na het bouwen van de applicatie.
134
+
127
135
## CORS Middleware
128
136
129
137
Cross-origin resource sharing (CORS) is een mechanisme waarmee beperkte bronnen op een webpagina kunnen worden opgevraagd vanuit een ander domein buiten het domein van waaruit de eerste bron werd geserveerd. REST API's die in Vapor zijn gebouwd, hebben een CORS-beleid nodig om verzoeken veilig te kunnen terugsturen naar moderne webbrowsers.
Copy file name to clipboardExpand all lines: docs/advanced/queues.nl.md
+3
Original file line number
Diff line number
Diff line change
@@ -309,6 +309,9 @@ Als u geen wachtrij opgeeft, wordt de taak uitgevoerd op de `standaard` wachtrij
309
309
310
310
Met het pakket Queues kunt u ook taken plannen die op bepaalde tijdstippen moeten worden uitgevoerd.
311
311
312
+
!!! warning "Waarschuwing"
313
+
Geplande taken werken alleen als ze zijn ingesteld voordat de applicatie opstart, zoals in `configure.swift`. Ze werken niet in route handlers.
314
+
312
315
### De planner starten
313
316
De scheduler vereist dat een afzonderlijk workerproces draait, gelijkaardig aan de queue worker. U kunt de worker starten door dit commando uit te voeren:
Copy file name to clipboardExpand all lines: docs/advanced/testing.nl.md
+5-4
Original file line number
Diff line number
Diff line change
@@ -34,15 +34,16 @@ final class MyTests: XCTestCase {
34
34
}
35
35
```
36
36
37
-
Elke functie die begint met `test` zal automatisch worden uitgevoerd wanneer uw app wordt getest.
37
+
Elke functie die begint met `test` zal automatisch worden uitgevoerd wanneer uw app wordt getest.
38
38
39
39
### Tests Uitvoeren
40
40
41
41
Gebruik `cmd+u` met het `-Package` schema geselecteerd om tests in Xcode uit te voeren. Gebruik `swift test --enable-test-discovery` om te testen via de CLI.
42
42
43
43
## Testbare Applicatie
44
44
45
-
Initialiseer een instantie van `Application` met behulp van de `.testing` omgeving. Je moet `app.shutdown()` aanroepen voordat deze applicatie de-initialiseert.
45
+
Initialiseer een instantie van `Application` met behulp van de `.testing` omgeving. Je moet `app.shutdown()` aanroepen voordat deze applicatie de-initialiseert.
46
+
De shutdown is nodig om de resources die de app heeft geclaimd vrij te geven. In het bijzonder is het belangrijk om de threads vrij te geven die de applicatie aanvraagt bij het opstarten. Als je `shutdown()` niet aanroept op de app na elke unit test, kan je testsuite crashen met een precondition failure bij het toewijzen van threads voor een nieuwe instantie van `Application`.
46
47
47
48
```swift
48
49
let app =Application(.testing)
@@ -63,7 +64,7 @@ try app.test(.GET, "hello") { res in
63
64
}
64
65
```
65
66
66
-
De eerste twee parameters zijn de HTTP methode en URL om op te vragen. De afsluiter achteraan accepteert de HTTP respons die je kunt verifiëren met `XCTAssert` methoden.
67
+
De eerste twee parameters zijn de HTTP methode en URL om op te vragen. De afsluiter achteraan accepteert de HTTP respons die je kunt verifiëren met `XCTAssert` methoden.
67
68
68
69
Voor meer complexe verzoeken, kunt u een `beforeRequest` closure toevoegen om headers te wijzigen of inhoud te coderen. Vapor's [Content API](../basics/content.md) is beschikbaar op zowel het test request als het antwoord.
Copy file name to clipboardExpand all lines: docs/deploy/heroku.nl.md
+12-12
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ Zorg ervoor dat je de heroku cli tool hebt geïnstalleerd.
13
13
### HomeBrew
14
14
15
15
```bash
16
-
brew install heroku/brew/heroku
16
+
brew tap heroku/brew&& brew install heroku
17
17
```
18
18
19
19
### Andere Installatiemogelijkheden
@@ -52,7 +52,7 @@ git init
52
52
53
53
#### Master/Main
54
54
55
-
Standaard deponeert Herokude **master/main** branch. Zorg ervoor dat alle wijzigingen in deze branch zijn gecontroleerd voordat u gaat pushen.
55
+
Je kunt het beste één branch behouden voor deployments naar Heroku, zoals de **main**of **master**branch. Zorg ervoor dat alle wijzigingen in deze branch zijn gecontroleerd voordat je gaat pushen.
56
56
57
57
Controleer uw huidige branch met
58
58
@@ -63,18 +63,18 @@ git branch
63
63
De asterisk geeft de huidige branch aan.
64
64
65
65
```bash
66
-
*master
66
+
*main
67
67
commander
68
68
other-branches
69
69
```
70
70
71
71
!!! note "Opmerking"
72
72
Als je geen uitvoer ziet en je hebt net `git init` uitgevoerd. Je moet eerst je code committen, daarna krijg je uitvoer te zien van het `git branch` commando.
73
73
74
-
Als u momenteel _niet_ op **master/main**bent, schakel daar dan over door in te voeren:
74
+
Als u momenteel _niet_ op de juiste branch bent, schakel daar dan naar over door in te voeren in de terminal (voor branch **main**):
Het buildpack dat we hebben toegevoegd zoekt naar een **.swift-version** bestand om te weten welke versie van swift gebruikt moet worden. (vervang 5.2.1 door de versie die uw project nodig heeft).
113
+
Het buildpack dat we hebben toegevoegd zoekt naar een **.swift-version** bestand om te weten welke versie van swift gebruikt moet worden. (vervang 5.8.1 door de versie die uw project nodig heeft).
114
114
115
115
```bash
116
-
echo"5.2.1"> .swift-version
116
+
echo"5.8.1"> .swift-version
117
117
```
118
118
119
119
Dit creëert **.swift-version** met `5.2.1` als inhoud.
Je bent klaar om uit te rollen, voer dit uit vanaf de terminal. Het kan een tijdje duren om te bouwen, dit is normaal.
151
151
152
152
```none
153
-
git push heroku master
153
+
git push heroku main
154
154
```
155
155
156
156
### Scale Up
157
157
158
-
Als je eenmaal succesvol hebt gebouwd, moet je ten minste één server toevoegen, één web is gratis en je kunt het krijgen met het volgende:
158
+
Als je eenmaal succesvol hebt gebouwd, moet je ten minste één server toevoegen. Prijzen starten vanaf $5/maand voor het Eco plan (zie [prijzen](https://www.heroku.com/pricing#containers)). Zorg ervoor dat jouw betaalgegevens geconfigureerd zijn op Heroku. Dan, voor een enkele web worker:
159
159
160
160
```bash
161
161
heroku ps:scale web=1
162
162
```
163
163
164
164
### Continued Deployment
165
165
166
-
Elke keer dat je wil updaten, zet je gewoon de laatste veranderingen in master en push je naar heroku en het zal opnieuw deployen
166
+
Elke keer dat je wil updaten, zet je gewoon de laatste veranderingen in main en push je naar heroku en het zal opnieuw deployen
167
167
168
168
## Postgres
169
169
170
170
### PostgreSQL Database Toevoegen
171
171
172
172
Bezoek uw applicatie op dashboard.heroku.com en ga naar de **Add-ons** sectie.
173
173
174
-
Voer hier `postgress` in en u zult een optie zien voor `Heroku Postgres`. Selecteer deze.
174
+
Voer hier `postgres` in en u zult een optie zien voor `Heroku Postgres`. Selecteer deze.
175
175
176
-
Kies het hobby dev free plan, en provision. Heroku zal de rest doen.
176
+
Kies het Eco plan voor $5/maand (zie [prijzen](https://www.heroku.com/pricing#data-services)), en provision. Heroku zal de rest doen.
177
177
178
178
Zodra je klaar bent, zie je de database verschijnen onder de **Resources** tab.
Pivots zijn normale modellen die twee `@Parent` relaties bevatten. Één voor elk van de modellen die gerelateerd moeten worden. Extra eigenschappen kunnen worden opgeslagen op de pivot indien gewenst.
171
+
Elk model dat tenminste twee `@Parent` relaties bevat, één voor elk model dat gerelateerd moet worden, kan gebruikt worden als pivot. Het model kan aanvullende eigenschappen bevatten, zoals zijn ID, en kan zelfs andere `@Parent` relaties bevatten.
162
172
163
173
Het toevoegen van een [unieke](schema.md#unique) constraint aan het pivot model kan helpen om overbodige entries te voorkomen. Zie [schema](schema.md) voor meer informatie.
164
174
@@ -197,13 +207,24 @@ final class Tag: Model {
197
207
198
208
De `@Siblings` eigenschap heeft methoden voor het toevoegen en verwijderen van modellen uit de relatie.
199
209
200
-
Gebruik de `attach` methode om een model aan de relatie toe te voegen. Hierdoor wordt het pivot model automatisch aangemaakt en opgeslagen.
210
+
Gebruik de `attach()` methode om een enkel model of een array van modellen toe te voegen aan de relatie. Pivot modellen worden indien nodig automatisch aangemaakt en opgeslagen. Er kan een callback closure worden gespecificeerd om aanvullende eigenschappen van elke gecreëerde pivot in te vullen:
201
211
202
212
```swift
203
213
let earth: Planet =...
204
214
let inhabited: Tag =...
205
215
// Voegt het model toe aan de relatie.
206
216
tryawait earth.$tags.attach(inhabited, on: database)
217
+
// Vul de pivot attributen in bij het maken van de relatie.
218
+
tryawait earth.$tags.attach(inhabited, on: database) { pivot in
219
+
pivot.comments="This is a life-bearing planet."
220
+
pivot.status= .accepted
221
+
}
222
+
// Voeg meerdere modellen met attributen toe aan de relatie.
223
+
let volcanic: Tag =..., oceanic: Tag =...
224
+
tryawait earth.$tags.attach([volcanic, oceanic], on: database) { pivot in
225
+
pivot.comments="This planet has a tag named \(pivot.$tag.name)."
226
+
pivot.status= .pending
227
+
}
207
228
```
208
229
209
230
Bij het koppelen van een enkel model, kunt u de `method` parameter gebruiken om te kiezen of de relatie wel of niet gecontroleerd moet worden voor het opslaan.
Copy file name to clipboardExpand all lines: docs/getting-started/hello-world.nl.md
+4-1
Original file line number
Diff line number
Diff line change
@@ -18,14 +18,17 @@ vapor new hello -n
18
18
!!! tip
19
19
De `-n` vlag geeft je een kaal sjabloon door automatisch nee te antwoorden op alle vragen.
20
20
21
+
!!! tip
22
+
Je kan ook de laatste template van Github halen zonder de Vapor Toolbox te installeren door de [template repository](https://github.com/vapor/template-bare) te clonen.
23
+
21
24
!!! tip
22
25
Vapor en het sjabloon gebruiken nu standaard `async`/`await`. Als je niet kunt updaten naar macOS 12 en/of `EventLoopFuture` wilt blijven gebruiken, gebruik dan de vlag `--branch macos10-15`.
23
26
24
27
Eens het commando voltooid is, navigeer naar de nieuw aangemaakt map:
Copy file name to clipboardExpand all lines: docs/leaf/getting-started.nl.md
+3
Original file line number
Diff line number
Diff line change
@@ -74,6 +74,9 @@ Nu Leaf is geconfigureerd, laten we je eerste template renderen. Maak in de map
74
74
Hello, #(name)!
75
75
```
76
76
77
+
!!! tip
78
+
Als je VSCode als code editor gebruikt, raden we aan de Leaf extensie te installeren om syntax highlighting mogelijk te maken: [Leaf HTML](https://marketplace.visualstudio.com/items?itemName=Francisco.html-leaf).
79
+
77
80
Registreer dan een route (meestal gedaan in `routes.swift` of een controller) om de view te renderen.
Copy file name to clipboardExpand all lines: docs/leaf/overview.nl.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ Leaf tags bestaan uit vier elementen::
17
17
- Token `#`: Dit geeft de leaf parser het signaal om te beginnen zoeken naar een tag.
18
18
- Naam `count`: die de tag identificeert.
19
19
- Parameter Lijst `(users)`: Kan nul of meer argumenten aanvaarden.
20
-
- Body: Een optionele body kan aan sommige tags worden toegevoegd met behulp van een puntkomma en een afsluitende tag
20
+
- Body: Een optionele body kan aan sommige tags worden toegevoegd met behulp van een dubbelpunt en een afsluitende tag
21
21
22
22
Er kunnen veel verschillende toepassingen zijn voor deze vier elementen, afhankelijk van de implementatie van de tag. Laten we eens kijken naar een paar voorbeelden van hoe de ingebouwde tags van Leaf gebruikt kunnen worden:
0 commit comments