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:

...
$configurator->setDebugMode(false);
$configurator->enableTracy(__DIR__ . '/../log');
...

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!