-
-
Notifications
You must be signed in to change notification settings - Fork 322
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add getting started italian translation (#808)
* Add getting started italian translation * Minor fixes * Add italian to translation issue template
- Loading branch information
Showing
6 changed files
with
355 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# Struttura della Cartella | ||
|
||
Dopo aver creato, compilato ed eseguito la vostra prima applicazione, è il momento di dare un'occhiata a come Vapor struttura la cartella del progetto. La struttura si basa su [SwiftPM](spm.md), quindi se avete già familiarità con SwiftPM vi sentirete a casa. | ||
|
||
``` | ||
. | ||
├── Public | ||
├── Sources | ||
│ ├── App | ||
│ │ ├── Controllers | ||
│ │ ├── Migrations | ||
│ │ ├── Models | ||
│ │ ├── configure.swift | ||
│ │ ├── entrypoint.swift | ||
│ │ └── routes.swift | ||
│ | ||
├── Tests | ||
│ └── AppTests | ||
└── Package.swift | ||
``` | ||
|
||
Le seguenti sezioni spiegano in maggior dettaglio la struttura della cartella. | ||
|
||
## Public | ||
|
||
Questa cartella contiene tutti i file pubblici che saranno messi a disposizione dall'applicazione se `FileMiddleware` è abilitato. In genere si tratta di immagini, fogli di stile e script del browser. Ad esempio, una richiesta a `localhost:8080/favicon.ico` controlla se `Public/favicon.ico` esiste e lo restituisce. | ||
|
||
Perché Vapor possa servire i file pubblici, bisognerà abilitare `FileMiddleware` nel file `configure.swift`. | ||
|
||
```swift | ||
// Fornisce i file dalla cartella `Public/` | ||
let fileMiddleware = FileMiddleware( | ||
publicDirectory: app.directory.publicDirectory | ||
) | ||
app.middleware.use(fileMiddleware) | ||
``` | ||
|
||
## Sources | ||
|
||
Questa cartella contiene tutti i file sorgente Swift che verranno utilizzati dal progetto. | ||
La cartella di primo livello, `App`, riflette il modulo del vostro pacchetto, come dichiarato nel manifesto [SwiftPM](spm.md). | ||
|
||
### App | ||
|
||
La cartella `App` contiene tutta la logica dell'applicazione. | ||
|
||
#### Controllers | ||
|
||
I controller sono un ottimo modo per raggruppare la logica dell'applicazione. La maggior parte dei controller ha diverse funzioni che accettano una richiesta e restituiscono qualche tipo di risposta. | ||
|
||
#### Migrations | ||
|
||
Se si utilizza Fluent, questa cartella contiene le migrazioni del database. | ||
|
||
#### Models | ||
|
||
La cartella dei modelli è un ottimo posto per memorizzare le strutture `Content` e i modelli di Fluent. | ||
|
||
#### configure.swift | ||
|
||
Questo file contiene la funzione `configure(_:)`. Questo metodo viene chiamato da `entrypoint.swift` per configurare la nuova `Application` creata. Qui vengono registrati gli endpoints, i database, i providers e altro ancora. | ||
|
||
#### entrypoint.swift | ||
|
||
Questo file contiene la funzione `main(_:)`. Questo metodo viene chiamato dal sistema operativo per avviare l'applicazione. In genere non è necessario modificarlo. | ||
|
||
#### routes.swift | ||
|
||
Questo file contiene la funzione `routes(_:)`. Questo metodo viene chiamato da `configure(_:)` per registrare gli endpoints dell'applicazione. | ||
|
||
## Tests | ||
|
||
Per ogni mdulo non eseguibile nella cartella `Sources` si può avere una cartella corrispondente in `Tests`. Essa conterrà i test per quel modulo scritti sulla base del modulo di testing `XCTest`. I test possono essere eseguiti utilizzando `swift test` da riga di comando o premendo ⌘+U in Xcode. | ||
|
||
### AppTests | ||
|
||
Questa cartella contiene gli unit tests per il codice del modulo `App`. | ||
|
||
## Package.swift | ||
|
||
Infine, abbiamo il manifesto del pacchetto [SPM](spm.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
# Ciao, mondo | ||
|
||
Questa guida vi mostrerà, passo dopo passo, come creare, compilare ed eseguire il vostro primo progetto con Vapor. | ||
|
||
Se non avete ancora installato Swift o la Toolbox Vapor, seguite la guida di installazione prima di continuare. | ||
|
||
- [Installazione → macOS](../install/macos.md) | ||
- [Installazione → Linux](../install/linux.md) | ||
|
||
## Nuovo Progetto | ||
|
||
Il primo passo è creare un nuovo progetto Vapor sul vostro computer. Aprite il terminale e utilizzate il comando `new` della Toolbox. Questo creerà una nuova cartella nella directory corrente contenente il progetto. | ||
|
||
```sh | ||
vapor new hello -n | ||
``` | ||
|
||
!!! tip | ||
L'opzione `-n` creerà un progetto con il minimo indispensabile, rispondendo automaticamente no a tutte le domande. | ||
|
||
!!! tip | ||
Vapor e il template ora utilizzano `async`/`await` di default. | ||
Se non potete aggiornare a macOS 12 e/o avete bisogno di continuare ad utilizzare gli `EventLoopFuture`s, | ||
utilizzate l'opzione `--branch macos10-15`. | ||
|
||
Una volta terminato il comando, entrate nella cartella appena creata: | ||
|
||
```sh | ||
cd hello | ||
``` | ||
|
||
## Compilazione ed Esecuzione | ||
|
||
### Xcode | ||
|
||
Per prima cosa, aprite il progetto in Xcode: | ||
|
||
```sh | ||
open Package.swift | ||
``` | ||
|
||
Xcode inizierà automaticamente a scaricare le dipendenze di Swift Package Manager. La prima volta che aprite un progetto ci vorrà un po' di tempo. Quando la risoluzione delle dipendenze sarà completata, Xcode popolerà gli schemi disponibili. | ||
|
||
Nella parte superiore della finestra, alla destra dei pulsanti Play e Stop, cliccate sul nome del progetto per selezionare lo schema del progetto e selezionate un target di esecuzione appropriato, spesso "My Mac". Cliccate sul pulsante play per compilare ed eseguire il progetto. | ||
|
||
Dovreste ora veder apparire la Console nella parte inferiore della finestra di Xcode. | ||
|
||
```sh | ||
[ INFO ] Server starting on http:// | ||
``` | ||
|
||
### Linux | ||
|
||
Su Linux e altri sistemi operativi (e anche su macOS se non volete utilizzare Xcode) potete modificare il progetto nel vostro editor preferito, come Vim o VSCode. Per maggiori dettagli su come configurare altri IDE, consultate le [Guide di Swift sul Server](https://github.com/swift-server/guides/blob/main/docs/setup-and-ide-alternatives.md) | ||
|
||
Per compilare ed eseguire il progetto, nel Terminale eseguite: | ||
|
||
```sh | ||
swift run | ||
``` | ||
|
||
Questo comando compilerà ed eseguirà il progetto. La prima volta che lo eseguite ci vorrà un po' di tempo per scaricare e indicizzare le dipendenze. Una volta avviato, dovrebbe apparire il seguente codice nel terminale: | ||
|
||
```sh | ||
[ INFO ] Server starting on http://127.0.0.1:8080 | ||
``` | ||
|
||
## Visitare Localhost | ||
|
||
Ora che il progetto è in esecuzione, aprite il vostro browser e visitate <a href="http://localhost:8080/hello" target="_blank">localhost:8080/hello</a> oppure <a href="http://127.0.0.1:8080" target="_blank">http://127.0.0.1:8080</a>. | ||
|
||
Dovrebbe apparire la seguente pagina: | ||
|
||
```html | ||
Hello, world! | ||
``` | ||
|
||
Congratulazioni per aver creato, compilato ed eseguito il vostro primo progetto Vapor! 🎉 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
# Swift Package Manager | ||
|
||
Il [Swift Package Manager](https://swift.org/package-manager/) (SPM) è utilizzato per la compilazione del codice sorgente e delle dipendenze del vostro progetto. Poiché Vapor si basa molto su SPM, è una buona idea capire i suoi funzionamenti di base. | ||
|
||
SPM è simile a Cocoapods, Ruby gems e NPM. Si può utilizzare SPM dalla riga di comando con comandi come `swift build` e `swift test` o con IDE compatibili. Tuttavia, a differenza di alcuni altri package manager, non esiste un indice centrale dei pacchetti SPM. Esso sfrutta invece gli URL delle repository Git e le dipendenze delle versioni utilizzando i [tag Git](https://git-scm.com/book/en/v2/Git-Basics-Tagging). | ||
|
||
## Manifesto del Pacchetto | ||
|
||
Il primo posto in cui SPM cerca nel vostro progetto è il manifesto del pacchetto. Questo dovrebbe sempre essere situato nella directory principale del vostro progetto e chiamarsi `Package.swift`. | ||
|
||
Diamo un'occhiata a questo esempio di manifesto del pacchetto. | ||
|
||
```swift | ||
// swift-tools-version:5.8 | ||
import PackageDescription | ||
|
||
let package = Package( | ||
name: "MyApp", | ||
platforms: [ | ||
.macOS(.v12) | ||
], | ||
dependencies: [ | ||
.package(url: "https://github.com/vapor/vapor.git", | ||
from: "4.76.0"), | ||
], | ||
targets: [ | ||
.executableTarget( | ||
name: "App", | ||
dependencies: [ | ||
.product(name: "Vapor", package: "vapor") | ||
] | ||
), | ||
.testTarget(name: "AppTests", dependencies: [ | ||
.target(name: "App"), | ||
.product(name: "XCTVapor", package: "vapor"), | ||
]) | ||
] | ||
) | ||
``` | ||
|
||
Nelle sezioni seguenti vengono spiegate tutte le parti del manifesto. | ||
|
||
### Versione degli Strumenti | ||
|
||
La prima riga di un manifesto del pacchetto indica la versione degli strumenti Swift richiesta. Essa specifica la versione minima di Swift che il pacchetto supporta. L'API della descrizione del pacchetto può anche cambiare tra le versioni di Swift, quindi questa riga assicura che Swift sappia come analizzare il manifesto. | ||
|
||
### Nome del Pacchetto | ||
|
||
Il primo argomento di `Package` è il nome del pacchetto. Se il pacchetto è pubblico, bisogna utilizzare l'ultimo segmento dell'URL della repo Git come nome. | ||
|
||
### Piattaforme | ||
|
||
L'array `platforms` specifica quali piattaforme il pacchetto supporta. Specificando `.macOS(.v12)` il pacchetto richiederà macOS 12 o successivi. Quando Xcode caricherà il progetto, imposterà automaticamente la versione di distribuzione minima su macOS 12 in modo che si possano utilizzare tutte le API disponibili. | ||
|
||
### Dipendenze | ||
|
||
Le dipendenze sono altri pacchetti SPM da cui il pacchetto dipende. Tutte le applicazioni Vapor si basano sul pacchetto Vapor, ma se ne possono aggiungere senza limiti. | ||
|
||
Nell'esempio precedente, si può notare che il pacchetto dipende da [vapor/vapor](https://github.com/vapor/vapor), versione 4.76.0 o successive. Nel momento in cui si aggiunge una dipendenza al pacchetto, bisogna segnalare quali [target](#targets) dipendono dai moduli appena inseriti. | ||
|
||
### Target | ||
|
||
I target sono i moduli che compongono il vostro pacchetto. I target possono essere eseguibili, librerie o test. Solitamente un progetto Vapor ha due target, tuttavia se ne possono aggiungere in modo da organizzare il codice. | ||
Ogni target dichiara i moduli da cui dipende. Per poter importare ed usare i vari moduli nel codice bisogna dichiarare qui i loro nomi. Un target può dipendere da altri target nello stesso pacchetto o da qualsiasi modulo presente nei pacchetti aggiunto all'array delle [dipendenze principali](#dependencies). | ||
|
||
## Struttura della Cartella | ||
|
||
Questa è la tipica struttura di una cartella di un pacchetto SPM: | ||
|
||
``` | ||
. | ||
├── Sources | ||
│ └── App | ||
│ └── (Source code) | ||
├── Tests | ||
│ └── AppTests | ||
└── Package.swift | ||
``` | ||
|
||
Ogni `.target` o `.executableTarget` corrisponde a una cartella nella cartella `Sources`. | ||
Ogni `.testTarget` corrisponde a una cartella nella cartella `Tests`. | ||
|
||
## Package.resolved | ||
|
||
La prima volta che il progetto viene compilato, SPM creerà il file `Package.resolved` che contiene l'elenco delle dipendenze e delle versioni utilizzate. Durante le compilazioni successive saranno quelle le versioni utilizzate, anche se ce ne dovessero essere di più recenti. | ||
|
||
Per aggiornare le dipendenze basta eseguire `swift package update` e SPM aggiornerà automaticamente il file `Package.resolved` con le versioni più recenti. | ||
|
||
# Xcode | ||
|
||
Usando Xcode qualsiasi cambiamento a dipendenze, target, prodotti ecc. sarà automatico non appena si salva il file `Package.swift`. | ||
|
||
Per aggiornare le dipendenze, basta andare su File → Swift Packages → Update to Latest Package Versions. | ||
|
||
In genere è consigliabile aggiungere il file `.swiftpm` al `.gitignore`. Questo file contiene la configurazione del progetto di Xcode. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# Xcode | ||
|
||
Questa pagina contiene alcuni consigli e trucchi per l'utilizzo di Xcode. Non è necessaria se si preferisce usare un ambiente di sviluppo diverso. | ||
|
||
## Directory di lavoro personalizzata | ||
|
||
Di default Xcode eseguirà il progetto dalla cartella _DerivedData_. Questa cartella non è la stessa della cartella principale del progetto (dove si trova il file _Package.swift_). Questo significa che Vapor non sarà in grado di trovare file e cartelle come _.env_ o _Public_. | ||
|
||
Si può notare che questo sta accadendo se si vede il seguente avviso quando si esegue il progetto. | ||
|
||
```fish | ||
[ WARNING ] No custom working directory set for this scheme, using /path/to/DerivedData/project-abcdef/Build/ | ||
``` | ||
|
||
Per risolvere questo problema bisogna impostare una directory di lavoro personalizzata nello schema Xcode del progetto. | ||
|
||
Per prima cosa, modificare lo schema del progetto cliccando sul selettore dello schema vicino ai pulsanti play e stop. | ||
|
||
![Xcode Scheme Area](../images/xcode-scheme-area.png) | ||
|
||
Selezionare _Edit Scheme..._ dal menu a tendina. | ||
|
||
![Xcode Scheme Menu](../images/xcode-scheme-menu.png) | ||
|
||
Nell'editor dello schema, scegliere l'azione _App_ e la scheda _Options_. Selezionare _Use custom working directory_ e inserire il percorso alla cartella principale del progetto. | ||
|
||
![Xcode Scheme Options](../images/xcode-scheme-options.png) | ||
|
||
Si può ottenere il percorso completo alla cartella principale del progetto eseguendo `pwd` da una finestra del terminale aperta lì. | ||
|
||
```fish | ||
# verificare di essere nella cartella del progetto vapor | ||
vapor --version | ||
# ottenere il percorso di questa cartella | ||
pwd | ||
``` | ||
|
||
Si dovrebbe vedere un output simile al seguente. | ||
|
||
``` | ||
framework: 4.x.x | ||
toolbox: 18.x.x | ||
/path/to/project | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters