Yoan De Macedo [ Web & Frugalité ]

Un générateur de sites statiques pour les développeurs PHP

J'ai découvert le PHP à la fin des années 1990 (peut-être 1998 ou 1999, j'ai un doute). Ce langage me suit depuis et j'ai développé beaucoup de sites web, d'outils, de scripts cli, d'applications avec.

Souvent décrié, je pense qu'il reste tout à fait pertinent et qu'il a su évoluer au fil des années. Une bonne partie des sites web, des applications web dépendent d'ailleurs de lui aujourd'hui.

Lorsque j'ai souhaité revenir au site statique mais dans sa version moderne pour gérer le site sur lequel vous lisez actuellement cet article, j'ai naturellement souhaité un outil écrit en PHP notamment pour pouvoir l'adapter à mes besoins facilement.
Je n'ai pas trouvé grand chose et c'est pour cette raison que j'ai souhaité écrire mon générateur de sites statiques en PHP.

Je voulais que celui-ci reflète ma façon de voir les choses en utilisant peu de dépendances extérieures, en évitant un framework généraliste, sans "méta langage" pour écrire les templates, et qu'il soit le plus simple possible.

Fruga est donc un outil très facile à prendre en main et le code relativement simple à lire.
Ce n'est pas une application complexe.
Je n'utilise aucun framework et une seule bibliothèque extérieure au moment où je rédige ces lignes (mars 2025) pour lire le markdown.

Après tout, pour réaliser un générateur de sites statiques en PHP, on a pas besoin de grand chose. On a pratiquement tout à portée de main.
Le langage a été pensé au départ pour construire des sites web (même si aujourd'hui on peut faire d'autres choses avec). Il embarque tout ce dont on a besoin pour réaliser un tel projet.

Pourquoi je n'utilise pas un "méta langage" pour construire les templates ? PHP s'insère parfaitement dans une page HTML, c'est même son but initial. En exposant des objets simples, on peut tout à fait s'en passer et c'est une surcouche de moins.

Le PHP est un langage interprété. Plus lent et plus gourmand qu'un langage compilé tel que Rust, il reste tout à fait performant pour réaliser la plupart des projets. Je suis très sensible à l'impact environnemental du numérique donc bien entendu, ce sont des questionnements qui font partie de mes réflexions.
Dans le cadre d'un site statique, le générateur tourne sur ma machine. Si j'utilisais un langage compilé, la différence serait donc insignifiante. La génération du site actuel sur mon ordinateur portable prend 0,23 seconde.

Pour des projets web dynamiques, s'ils sont bien construits, la performance est là avec un impact acceptable (mais existant).
Pour des projets à trafic très très importants (je n'ai pas eu l'occasion de travailler sur de tels projets), d'autres solutions seraient probablement plus efficaces.
Il ne faut d'ailleurs pas prendre en compte seulement l'impact du langage mais l'équipe nécessaire, le temps de développement, le matériel associé, l'infrastructure d'hébergement dont on a besoin (et plein d'autres externalités que j'oublie probablement).

Si vous souhaitez jeter un oeil au projet Fruga, c'est par ici.

Je l'ai pensé pour mes besoins personnels tout en le prévoyant extensible. Les fonctionnalités sont pour l'instant limitée mais ça fonctionne. Sinon, vous ne pourriez pas lire cet article :)

Qui suis-je ? | Mes prestations | Mes projets | Mon blog | Me suivre | On en parle | mail@yoandm.com

Mentions légales | Confidentialité | Ethique | Mémo | RSS
Généré par Fruga