mirror of https://github.com/vapor/docs.git
83 lines
3.0 KiB
Markdown
83 lines
3.0 KiB
Markdown
# Struktura folderów
|
|
|
|
Udało Ci się stworzyć, zbudować oraz uruchomić swoją pierwszą aplikacje Vapor, użyjmy tego momentu aby zapoznać Cię z strukturą folderów w projekcie. Struktura jest bazowana na strukturze [SPM](spm.md)a, więc jeśli wcześniej pracowałeś/aś z jego pomocą powinna być dla Ciebie znana.
|
|
|
|
```
|
|
.
|
|
├── Public
|
|
├── Sources
|
|
│ ├── App
|
|
│ │ ├── Controllers
|
|
│ │ ├── Migrations
|
|
│ │ ├── Models
|
|
│ │ ├── configure.swift
|
|
│ │ ├── entrypoint.swift
|
|
│ │ └── routes.swift
|
|
│
|
|
├── Tests
|
|
│ └── AppTests
|
|
└── Package.swift
|
|
```
|
|
|
|
Sekcja poniżej wyjaśnia każdą część struktury folderów w detalach.
|
|
|
|
## Public
|
|
|
|
Then folder zawiera wszystkie publiczne pliki, które będą serwowane przez aplikacje jeśli `FileMiddleware` jest włączony. To zazwyczaj są obrazy, arkusze stylów i skrypty przeglądarki. Dla przykładu, zapytanie do `localhost:8080/favicon.ico` będzie sprawdzać czy `Public/favicon.ico` istnieje i zwracać je.
|
|
|
|
Musisz aktywować `FileMiddleware` w pliku `configure.swift` twojego projektu, zanim Vapor będzie potrafił serwować pliki publiczne.
|
|
|
|
```swift
|
|
// Serwuje pliki folderu `Public/`
|
|
let fileMiddleware = FileMiddleware(
|
|
publicDirectory: app.directory.publicDirectory
|
|
)
|
|
app.middleware.use(fileMiddleware)
|
|
```
|
|
|
|
## Sources
|
|
|
|
Ten folder zawiera wszystkie pliki źródłowe twojego projektu.
|
|
Folder o na górze zagnieżdżenia, `App`, odzwierciedla moduł pakietu,
|
|
zadeklarowany w manifeście [SwiftPM](spm.md).
|
|
|
|
### App
|
|
|
|
To miejsce na cała logikę twojej aplikacji.
|
|
|
|
#### Controllers
|
|
|
|
Kontrolery to świetny sposób na grupowania razem logiki aplikacji. Większość kontrolerów posiada wiele funkcji które przyjmują jakąś formę zapytania i zwracają dla niej odpowiedź.
|
|
|
|
#### Migrations
|
|
|
|
W tym folderze znajdują się wszystkie migracje bazy danych jeśli używać Fluenta.
|
|
|
|
#### Models
|
|
|
|
To świetne miejsce do trzymania `Content` struct lub `Model` z Fluenta.
|
|
|
|
#### configure.swift
|
|
|
|
Ten plik zawiera funkcję `configure(_:)`. Metoda ta jest wywoływana przez `entrypoint.swift` w celu skonfigurowania nowo utworzonej `Aplikacji`. W tym miejscu należy zarejestrować usługi, takie jak trasy, bazy danych, dostawców i inne.
|
|
|
|
#### entrypoint.swift
|
|
|
|
Ten plik zawiera punkt wejścia `@main` dla aplikacji, która ustawia, konfiguruje i uruchamia aplikację Vapor.
|
|
|
|
#### routes.swift
|
|
|
|
Ten plik zawiera funkcję `routes(_:)`. Metoda ta jest wywoływana pod koniec `configure(_:)` w celu zarejestrowania ścieżek czy inaczej końcówek w `Application`.
|
|
|
|
## Tests
|
|
|
|
Każdy niewykonywalny moduł w folderze `Sources` może mieć odpowiadający mu folder w `Tests`. Zawiera on kod zbudowany na module `XCTest` do testowania aplikacji. Testy można uruchomić za pomocą `swift test` w wierszu poleceń lub naciskając ⌘+U w Xcode.
|
|
|
|
### AppTests
|
|
|
|
Ten folder zawiera testy jednostkowe dla kodu w module `App`.
|
|
|
|
## Package.swift
|
|
|
|
Na końcu znajduje się manifest pakietu [SPM](spm.md).
|