Contexte

Pour accompagner le lancement d'une activité freelance, l'objectif était de construire un site web professionnel rapide, maintenable et sécurisé présentant un portail d'accueil clair, un portfolio structuré des réalisations passées, et un CV. Le site nécessitait une base technique robuste (MVC custom, DI, pipeline middleware) et un workflow de contenu propre : données JSON structurelles pour les champs non-linguistiques et fichiers de traduction dédiés pour tous les textes FR/EN.

Objectifs

  • Construire un portail freelance professionnel pour présenter services, CV et études de cas portfolio
  • Implémenter une stratégie de routing bilingue FR/EN avec détection automatique de langue et préfixes URL
  • Concevoir une architecture MVC custom propre avec DI, pipeline middleware et templates réutilisables
  • Livrer une sécurité baseline robuste (CSRF, nonce CSP, rate limiting, validation, sessions et en-têtes sécurisés)

Approche

Implémentation d'une architecture MVC custom en PHP 8+ avec un front controller unique et un Kernel bootstrappant configuration, sessions et services. Un pipeline middleware applique les préoccupations transverses (mode maintenance, rate limiting, vérifications CSRF, en-têtes de sécurité) avant le dispatch vers les contrôleurs. Un système de templates PHP natif avec layouts/partials et fonctions helper assure un rendu sécurisé (échappement systématique) et une génération d'URL cohérente avec préfixes de langue. Le contenu est séparé en données JSON structurelles (métadonnées portfolio : pillars/year/featured/stack/images) et fichiers de traduction FR/EN pour tous les textes, chargés via un DataLoader avec cache mémoire, tri par année et filtrage. Un système de thème dynamique charge les fichiers CSS personnalisés et applique des variables de configuration (couleurs, espacements, typographie) permettant un basculement immédiat entre thèmes sans rechargement. Les standards de développement imposent strict types, autoloading PSR-4, style PSR-12, logging PSR-3 via Monolog, objets Request/Response immuables et injection de dépendances via container.

Livrables

  • Site bilingue (FR/EN) et multithème avec routing préfixé par langue et détection automatique
  • Cœur MVC PHP custom (container DI, routeur, pipeline middleware, contrôleurs, vues)
  • Couche sécurité (tokens CSRF, nonce CSP, rate limiter, validation input, en-têtes sécurisés, sessions durcies)
  • Système de contenu basé sur JSON data + traductions avec cache, tri et filtrage portfolio

Resultats obtenus

  • Portail freelance professionnel, rapide et maintenable prêt pour le lancement commercial
  • Expérience bilingue cohérente avec URLs SEO-friendly (/fr/*, /en/*) et sélection automatique de langue
  • Baseline plus sûre grâce aux contrôles de sécurité multicouches et à l'échappement systématique des sorties
  • Workflow de contenu efficace : ajout/mise à jour des portfolios via JSON sans toucher à la logique de rendu

Un projet similaire ?

Discutons de vos besoins et voyons comment appliquer ces méthodes à votre contexte.