Conventions JavaScript
Le JavaScript améliore les écrans rendus côté serveur sans dupliquer les règles backend.
Règles
- La validation est autoritative côté backend — le JS ne fait que de l'UX
- Pas de framework JS (Vue, React, Alpine) — Vanilla JS ES6+ uniquement
- Pas de variables globales sauf le bootstrapping approuvé du projet
- Envoyer les tokens CSRF pour les requêtes non sûres
- Gérer les erreurs API de manière visible et accessible
Organisation du code JS
- Scripts de page dans
@push('scripts')ou@section('scripts') - Fonctions globales de page dans un IIFE :
(function(){ ... })() - Endpoints API injectés via
window.X_ENDPOINTS = { ... }depuis le layout ou la vue
Interdit
// ❌ Ne jamais décider des permissions uniquement en JavaScript
if (user.role === 'admin') {
showDangerousButton();
}
AJAX standard
fetch(window.APP_ENDPOINTS.users, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content,
},
body: JSON.stringify(data),
})
.then(r => r.ok ? r.json() : Promise.reject(r))
.then(json => { /* succès */ })
.catch(err => { /* erreur visible */ });