La meilleure façon d'apprendre un framework est la pratique, c'est pour cette raison que je présente dans ce blog plusieurs cas concrets, le dernier était la réalisation d'une boutique en ligne. Auparavant j'avais présenté un site d'annonce et un album photo. Dans cette nouvelle série pratique je vous propose la réalisation d'un blog. C'est à la fois simple et délicat, tout dépend les fonctionnalités qu'on désire implémenter. Je vais partir avec des objectifs suffisamment ambitieux pour que ça soit intéressant et instructif sans faire une usine à gaz. C'est un projet suffisamment riche pour couvrir l'ensemble des possibilités de Laravel. On va utiliser la dernière version actuelle qui est la 8. La version 9 est programmée pour septembre 2021. J'avais déjà présenté un projet de blog mais il commence à dater.
Le frontend
Le thème
Que va permettre ce blog ? Évidemment une page d'accueil avec un diaporama des derniers articles et une photo et un texte introductif des derniers articles parus avec une pagination.
Pour ce premier point incontournable il faut évidemment faire un choix de technologie frontend et les possibilités sont vastes ! Après réflexion j'ai opté pour un thème gratuit créé par Styleshout, en l'occurrence Calvin.
C'est un thème qui a un CSS spécifique et qui utilise quelques plugins classiques basés sur JQuery. Même si ce n'est pas de la technologie récente, on est loin de Tailwind et autres nouveautés, c'est une base solide et élégante. Il faudra évidemment un peu de travail pour intégrer ce thème à Laravel.
Comme on en aura besoin vous pouvez déjà le télécharger (il y a un gros bouton DOWNLOAD sur la page du thème). Vous pouvez ainsi l'explorer en local.
Les commentaires
On ne peut pas imaginer un blog sans commentaires et on va donc en prévoir. Si vous explorez le thème Calvin vous allez voir que les commentaires sont prévus avec une hiérarchisation et présence d'avatars :
On va respecter cette organisation pour notre blog. Pour le projet je vais utiliser un minimum de packages mais pour les commentaires on a une structure hiérarchique un peu délicate à gérer et il existe un excellent package pour s'occuper de ça. Il en existe un autre que j'aimais bien mais il a été malheureusement abandonné. On verra comment mettre ça en œuvre quand on s'occupera des commentaires.
Pour cette partie on utilisera aussi un package pour les avatars.L'organisation
Pour l'organisation des articles on va utiliser :- des catégories (sans aller jusqu'à des sous-catégories)
- des étiquettes
En plus des articles on aura aussi une partie CMS pour gérer des pages distinctes, par exemple pour l'affichage des données légales.
Les medias
Il y aura forcément des médias à gérer, essentiellement des images : image réduite pour le résumé de l'article, image haute définition pour le diaporama et l'article, et évidemment images dans les articles. Pour cette partie on utilisera le package Laravel-Media-Manager. Il comporte tout ce qu'il faut pour une gestion facilitée.
Les utilisateurs
Il nous faudra un système d'authentification et on sait que c'est un peu le bazar en ce moment. Pour faire simple on partira avec le package Laravel Breeze. On aura ainsi tous les contrôleurs et routes en place et on fera nos propres vues intégrées au thème.
Pour les permissions et rôles on peut très bien gérer ça sans package, on aura :- l'administrateur qui peut tout faire
- les rédacteurs qui peuvent gérer leurs articles et commentaires associés
- les utilisateurs enregistrés qui peuvent laisser des commentaires
- les utilisateurs non enregistrés qui ne peuvent que consulter
Les langues
Par défaut on va prévoir tous les textes en anglais mais on ajoutera toutes les traductions pour le français.Le backend
Pour le backend aussi il y a du choix mais on va se passer de packages pour l'apparence, par contre on va utiliser AdminLTE que j'aime bien. Pour cette partie le seul package qu'on utilisera c'est l'incontournable Laravel Datatable. Mais on s'intéressera à cette partie quand on aura bouclé le frontend et que tout fonctionnera.
On se prépare
Si ce programme vous convient on va commencer par installer un Laravel tout neuf :composer create-project laravel/laravel monblog --prefer-dist
Je pars du principe que vous avez un serveur en place, votre Laravel doit déjà fonctionner :
On va ajouter l'authentification :
composer require laravel/breeze --dev
Puis :
php artisan breeze:install
npm install
Là allez boire un café, à votre retour tout est en place et il ne reste plus qu'à générer :
npm run dev
On ne se servira pas par la suite des assets générés mais au moins on a une application qui fonctionne pour le moment.
Conclusion
On sait maintenant à peu près ce qu'on veut faire et on a une idée précise des moyens à utiliser. On a un Laravel de base pour démarrer correctement. Dans le prochain article on mettra en place le système de données nécessaire pour que notre blog fonctionne.
Par bestmomo
Nombre de commentaires : 28