Nette Documentation Preview

syntax
Crea la tua prima applicazione!
*******************************

.[perex]
Imparate a conoscere Nette Framework creando un semplice blog con commenti. Iniziamo!

Dopo i primi due capitoli, avrete il vostro blog funzionante e sarete pronti a pubblicare i vostri fantastici post, anche se le funzionalità saranno piuttosto limitate dopo aver completato questi due capitoli. Per rendere le cose più piacevoli ai vostri utenti, dovreste leggere anche i capitoli successivi e continuare a migliorare la vostra applicazione.

.[tip]
Questa esercitazione presuppone che si sia completato il documento di [installazione |nette:installation] e che si sia configurato con successo lo strumento. Si presuppone inoltre che si conosca la [programmazione orientata agli oggetti in PHP |nette:introduction-to-object-oriented-programming].

Utilizzare PHP 8.1 o successivo. L'applicazione completa è disponibile [su GitHub |https://github.com/nette-examples/quickstart/tree/v4.0].


La pagina di benvenuto .[#toc-the-welcome-page]
===============================================

Iniziamo creando un nuovo progetto nella cartella `nette-blog`:

```shell
composer create-project nette/web-project nette-blog
```

A questo punto, la pagina di benvenuto del progetto Web dovrebbe essere in esecuzione. Provatela aprendo il browser e accedendo al seguente URL:

```
http://localhost/nette-blog/www/
```

e dovreste vedere la pagina di benvenuto di Nette Framework:

[* qs-welcome.webp .{url: http://localhost/nette-blog/www/} *]

L'applicazione funziona e ora potete iniziare a modificarla.

.[note]
In caso di problemi, [provate a seguire questi suggerimenti |nette:troubleshooting#Nette Is Not Working, White Page Is Displayed].


Contenuto del progetto Web .[#toc-web-project-s-content]
========================================================

Il progetto Web ha la seguente struttura:

/--pre
<b>nette-blog/</b>
├── <b>app/</b>              ← application directory
│   ├── <b>Core/</b>         ← classi di base necessarie
│   ├── <b>UI/</b>           ← presentatori, modelli & co.
│   │   └── <b>Home/</b>     ← Elenco presentatori Home
│   └── <b>Bootstrap.php</b> ← booting class Bootstrap
├── <b>bin/</b>              ← scripts for the command line
├── <b>config/</b>           ← configuration files
├── <b>log/</b>              ← error logs
├── <b>temp/</b>             ← temporary files, cache, …
├── <b>vendor/</b>           ← libraries installed by Composer
│   └── <b>autoload.php</b>  ← autoloading of libraries installed by Composer
└── <b>www/</b>              ← public folder - the only place accessible from browser
    └── <b>index.php</b>     ← initial file that launches the application
\--

La directory `www` dovrebbe contenere immagini, JavaScript, CSS e altri file disponibili al pubblico. Questa è l'unica directory direttamente accessibile dal browser, quindi si può puntare qui la directory principale del server web (si può configurare in Apache, ma lo faremo più avanti perché non è importante in questo momento).

La directory più importante per voi è `app/`. Vi si trova il file `Bootstrap.php`, all'interno del quale si trova una classe che carica il framework e configura l'applicazione. Attiva l'[autocaricamento |robot-loader:] e imposta il [debugger |tracy:] e le [rotte |application:routing].


Pulire .[#toc-cleanup]
======================

Il progetto Web contiene una pagina di benvenuto, che possiamo rimuovere: cancellate pure il file `app/UI/Home/default.latte` e sostituitelo con il testo "Hello world!".


[* qs-hello.webp .{url:-} *]


Tracy (Debugger) .[#toc-tracy-debugger]
=======================================

Uno strumento estremamente importante per lo sviluppo è [un debugger chiamato Tracy |tracy:]. Provate a fare qualche errore nel vostro file `app/UI/Home/HomePresenter.php` (per esempio, rimuovendo una parentesi graffa dalla definizione della classe HomePresenter) e vedete cosa succede. Verrà visualizzata una pagina a schermo rosso con una descrizione comprensibile dell'errore.

[* qs-tracy.avif .{url:-}(debugger screen) *]

Tracy vi aiuterà notevolmente nella ricerca degli errori. Notate anche la barra Tracy fluttuante nell'angolo in basso a destra, che vi informa su importanti dati di runtime.

[* qs-tracybar.webp .{url:-} *]

In modalità di produzione, Tracy è ovviamente disattivato e non rivela alcuna informazione sensibile. Tutti gli errori vengono invece salvati nella directory `log/`. Provate. In `app/Bootstrap.php`, trovate il seguente pezzo di codice, decommentate la riga e cambiate il parametro della chiamata al metodo in `false`, in modo che appaia come questo:

```php .{file:app/Bootstrap.php}
...
$this->configurator->setDebugMode(false);
...
```

Dopo l'aggiornamento della pagina web, la pagina a schermo rosso sarà sostituita dal messaggio di facile comprensione:

[* qs-fatal.webp .{url:-}(error screen) *]

Ora, guardate nella directory `log/`. Vi si trova il registro degli errori (nel file exception.log) e anche la pagina con il messaggio di errore (salvata in un file HTML con un nome che inizia con `exception`).

Commentare nuovamente la riga `// $configurator->setDebugMode(false);`. Tracy abilita automaticamente la modalità di sviluppo nell'ambiente `localhost` e la disabilita altrove.

Ora possiamo risolvere il bug e continuare a progettare la nostra applicazione.


Inviare i ringraziamenti .[#toc-send-thanks]
============================================

Vi mostriamo un trucco che renderà felici gli autori open source. Potete facilmente assegnare una stella su GitHub alle librerie utilizzate dal vostro progetto. Basta eseguire:

```shell
composer thanks
```

Provate!

{{priority: -1}}
{{sitename: Nette Quickstart}}

Crea la tua prima applicazione!

Imparate a conoscere Nette Framework creando un semplice blog con commenti. Iniziamo!

Dopo i primi due capitoli, avrete il vostro blog funzionante e sarete pronti a pubblicare i vostri fantastici post, anche se le funzionalità saranno piuttosto limitate dopo aver completato questi due capitoli. Per rendere le cose più piacevoli ai vostri utenti, dovreste leggere anche i capitoli successivi e continuare a migliorare la vostra applicazione.

Questa esercitazione presuppone che si sia completato il documento di installazione e che si sia configurato con successo lo strumento. Si presuppone inoltre che si conosca la programmazione orientata agli oggetti in PHP.

Utilizzare PHP 8.1 o successivo. L'applicazione completa è disponibile su GitHub.

La pagina di benvenuto

Iniziamo creando un nuovo progetto nella cartella nette-blog:

composer create-project nette/web-project nette-blog

A questo punto, la pagina di benvenuto del progetto Web dovrebbe essere in esecuzione. Provatela aprendo il browser e accedendo al seguente URL:

http://localhost/nette-blog/www/

e dovreste vedere la pagina di benvenuto di Nette Framework:

L'applicazione funziona e ora potete iniziare a modificarla.

In caso di problemi, provate a seguire questi suggerimenti.

Contenuto del progetto Web

Il progetto Web ha la seguente struttura:

nette-blog/
├── app/              ← application directory
│   ├── Core/         ← classi di base necessarie
│   ├── UI/           ← presentatori, modelli & co.
│   │   └── Home/     ← Elenco presentatori Home
│   └── Bootstrap.php ← booting class Bootstrap
├── bin/              ← scripts for the command line
├── config/           ← configuration files
├── log/              ← error logs
├── temp/             ← temporary files, cache, …
├── vendor/           ← libraries installed by Composer
│   └── autoload.php  ← autoloading of libraries installed by Composer
└── www/              ← public folder - the only place accessible from browser
    └── index.php     ← initial file that launches the application

La directory www dovrebbe contenere immagini, JavaScript, CSS e altri file disponibili al pubblico. Questa è l'unica directory direttamente accessibile dal browser, quindi si può puntare qui la directory principale del server web (si può configurare in Apache, ma lo faremo più avanti perché non è importante in questo momento).

La directory più importante per voi è app/. Vi si trova il file Bootstrap.php, all'interno del quale si trova una classe che carica il framework e configura l'applicazione. Attiva l'autocaricamento e imposta il debugger e le rotte.

Pulire

Il progetto Web contiene una pagina di benvenuto, che possiamo rimuovere: cancellate pure il file app/UI/Home/default.latte e sostituitelo con il testo „Hello world!“.

Tracy (Debugger)

Uno strumento estremamente importante per lo sviluppo è un debugger chiamato Tracy. Provate a fare qualche errore nel vostro file app/UI/Home/HomePresenter.php (per esempio, rimuovendo una parentesi graffa dalla definizione della classe HomePresenter) e vedete cosa succede. Verrà visualizzata una pagina a schermo rosso con una descrizione comprensibile dell'errore.

debugger screen

Tracy vi aiuterà notevolmente nella ricerca degli errori. Notate anche la barra Tracy fluttuante nell'angolo in basso a destra, che vi informa su importanti dati di runtime.

In modalità di produzione, Tracy è ovviamente disattivato e non rivela alcuna informazione sensibile. Tutti gli errori vengono invece salvati nella directory log/. Provate. In app/Bootstrap.php, trovate il seguente pezzo di codice, decommentate la riga e cambiate il parametro della chiamata al metodo in false, in modo che appaia come questo:

...
$this->configurator->setDebugMode(false);
...

Dopo l'aggiornamento della pagina web, la pagina a schermo rosso sarà sostituita dal messaggio di facile comprensione:

error screen

Ora, guardate nella directory log/. Vi si trova il registro degli errori (nel file exception.log) e anche la pagina con il messaggio di errore (salvata in un file HTML con un nome che inizia con exception).

Commentare nuovamente la riga // $configurator->setDebugMode(false);. Tracy abilita automaticamente la modalità di sviluppo nell'ambiente localhost e la disabilita altrove.

Ora possiamo risolvere il bug e continuare a progettare la nostra applicazione.

Inviare i ringraziamenti

Vi mostriamo un trucco che renderà felici gli autori open source. Potete facilmente assegnare una stella su GitHub alle librerie utilizzate dal vostro progetto. Basta eseguire:

composer thanks

Provate!