Migration PHP → Go
Depuis php 4.0
J'ai vu php évoluer au fil des années. J'ai connu php sans Composer, sans Symfony ni Laravel.
Faire ses armes sur php 5.4, voir la sortie de php 6 échouer et la tendance Php is dead.
L'évolution vers un typage plus strict. Les dernières versions plus optimisées OPcache et le
JIT (Just in Time). Une belle évolution d'un langage mature.
C'est tout naturellement que j'ai commencé à propulser le site avec une solution maison River mon framework PHP.
Mais alors pourquoi migrer vers Go?
Pourquoi migrer ?
C’est en mettant en place une infrastructure self-hosted que j’ai découvert des outils comme Traefik, Woodpecker, FileBrowser.
Le fait qu’ils disposent d’une interface Web a attiré ma curiosité ; j'ai donc décidé de faire "a tour of go" et j'ai constaté que l'on disposait nativement de tout le nécessaire pour faire tourner un site vitrine avec très peu de mémoire.
Et des fonctionnalités natives : autoloading intégré, net/http, un système de layout html/template...
Le site tourne maintenant sur goWebFlow, mon micro-framework Go (zéro dépendance externe).
Plutôt que de m’obstiner à finaliser un énième toolkit admin en PHP, j’ai préféré simplifier radicalement l’architecture. goWebFlow me permet de rester sur un site vitrine ultra-léger. Pour la partie blog, j’ai délaissé la base de données au profit du Git-as-CMS : mes articles sont des fichiers versionnés dans le dépôt. C'est un excellent moyen de concilier performance brute et simplicité de maintenance.
Stack
- Backend : goWebFlow
- Frontend : ViteJS + CSS custom
- CI/CD : Woodpecker → registry → web (Proxmox LXC)
Le mot de la fin
Ce qui m’a surtout marqué avec Go, c’est la simplicité du tooling. Un binaire, peu de dépendances, une stdlib solide et un déploiement direct dans mes conteneurs.