Écrivons notre première application !

Découvrons ensemble Nette Framework en créant un blog simple avec des commentaires. Allons-y !

Dès les deux premiers chapitres, nous aurons notre propre blog fonctionnel et pourrons publier nos superbes articles, bien que les fonctionnalités soient encore largement limitées. Vous devriez également lire les chapitres suivants, où nous programmerons l'ajout de commentaires, l'édition d'articles et enfin sécuriserons le blog.

Ce tutoriel suppose que vous avez lu la page Installation et préparé avec succès les outils nécessaires. Il suppose également que vous comprenez la programmation orientée objet en PHP.

Veuillez utiliser PHP 8.1 ou une version plus récente. L'application complète se trouve sur GitHub.

Page d'accueil

Commençons par créer un nouveau projet dans le répertoire nette-blog :

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

À ce stade, la page d'accueil du Web Project devrait déjà fonctionner. Essayons en ouvrant le navigateur à l'URL suivante :

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

et nous verrons la page d'accueil de Nette Framework :

L'application fonctionne et vous pouvez commencer à faire des modifications.

Si un problème survient, essayez ces quelques conseils.

Contenu du Web Project

Le Web Project a la structure suivante :

nette-blog/
├── app/              ← répertoire de l'application
│   ├── Core/         ← classes de base nécessaires au fonctionnement
│   ├── Presentation/ ← presenters, templates & co.
│   │   └── Home/     ← répertoire du presenter Home
│   └── Bootstrap.php ← classe de démarrage Bootstrap
├── bin/              ← scripts exécutés depuis la ligne de commande
├── config/           ← fichiers de configuration
├── log/              ← journalisation des erreurs
├── temp/             ← fichiers temporaires, cache, …
├── vendor/           ← bibliothèques installées par Composer
│   └── autoload.php  ← autoloading de tous les paquets installés
└── www/              ← répertoire public - le seul accessible depuis le navigateur
    └── index.php     ← fichier initial par lequel l'application démarre

Le répertoire www/ est destiné au stockage des images, des fichiers JavaScript, des styles CSS et d'autres fichiers accessibles au public. Seul ce répertoire est accessible depuis Internet, alors configurez le répertoire racine de votre application pour qu'il pointe ici (vous pouvez le configurer dans la configuration d'Apache ou de nginx, mais faisons cela plus tard, ce n'est pas important pour l'instant).

Le dossier le plus important pour nous est app/. Nous y trouvons le fichier Bootstrap.php, qui contient la classe servant à charger l'ensemble du framework et à configurer l'application. L'autoloading y est activé, le debugger et les routes y sont configurés.

Nettoyage

Le Web Project contient une page d'accueil que nous supprimerons avant de commencer à programmer quoi que ce soit. Remplacez donc sans crainte le contenu du fichier app/Presentation/Home/default.latte par “Hello world!”.

Tracy (debugger)

Un outil extrêmement important pour le développement est l'outil de débogage Tracy. Essayez de provoquer une erreur dans le fichier app/Presentation/Home/HomePresenter.php (par exemple, en supprimant une accolade dans la définition de la classe HomePresenter) et voyez ce qui se passe. Une page de notification apparaîtra, décrivant l'erreur de manière compréhensible.

écran du débogueur

Tracy nous aidera énormément lorsque nous chercherons des erreurs dans l'application. Remarquez également la barre Tracy flottante dans le coin inférieur droit de l'écran, qui contient des informations sur l'exécution de l'application.

En mode production, Tracy est bien sûr désactivé et n'affiche aucune information sensible. Toutes les erreurs sont dans ce cas stockées dans le dossier log/. Essayons cela. Dans le fichier app/Bootstrap.php, décommentez la ligne suivante et changez le paramètre de l'appel à false, pour que le code ressemble à ceci :

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

Après avoir rechargé la page, nous ne verrons plus Tracy. À la place, un message convivial s'affichera :

écran d'erreur

Maintenant, regardons dans le répertoire log/. Ici (dans le fichier exception.log), nous trouverons l'erreur journalisée ainsi que la page déjà connue avec le message d'erreur (enregistrée sous forme de fichier HTML avec un nom commençant par exception-).

Commentez à nouveau la ligne $configurator->setDebugMode(false);. Tracy active automatiquement le mode développeur sur localhost et le désactive partout ailleurs.

Nous pouvons corriger l'erreur que nous avons créée et continuer à écrire l'application.

Envoyez un remerciement

Nous allons vous montrer une astuce qui fera plaisir aux auteurs open source. Vous pouvez facilement donner une étoile sur GitHub aux bibliothèques que votre projet utilise. Il suffit d'exécuter :

composer thanks

Essayez !