specs.md

Spécifications web pour une stack LAMP + Symfony

Objectif

Donner un repère rapide des standards et références normatives utiles au développement d'une application Symfony sur stack LAMP (Linux/Apache/MySQL/PHP).

Cartographie des spécifications (par couches)

1) Réseau & sécurité (IETF)

  • HTTP sĂ©mantique : RFC 9110 (architecture, mĂ©thodes, codes, en‑tĂŞtes).
  • HTTP/1.1 : RFC 9112 (syntaxe des messages, connexions).
  • HTTP/2 : RFC 9113 (multiplexage, compression d’en‑tĂŞtes).
  • HTTP/3 : RFC 9114 (HTTP sur QUIC).
  • TLS : RFC 8446 (TLS 1.3, base d’HTTPS).

Pourquoi c’est clé : définit le contrat client/serveur, le cache HTTP, les statuts, la négociation, la sécurité.

2) Plateforme Web (WHATWG)

  • HTML : structure, formulaires, navigation, Ă©lĂ©ments.
  • DOM : arbre de nĹ“uds, Ă©vĂ©nements, APIs client.
  • Fetch : modèle Request/Response, CORS, redirections.
  • URL : parsing, sĂ©rialisation, normalisation.
  • Encoding : UTF‑8 et compatibilitĂ© des encodages.

Pourquoi c’est clé : gouverne le comportement navigateur côté client et la manière dont le serveur doit répondre.

3) Styles (W3C CSS)

  • CSS Snapshot 2025 : photographie de l’état des modules CSS (approche modulaire).

Pourquoi c’est clé : clarifie quelles briques CSS sont stables et normalisées.

4) Langage côté navigateur (ECMA‑262)

  • ECMAScript 2025 : spĂ©cification officielle du langage JavaScript.

Pourquoi c’est clé : contrat du langage pour scripts front‑end et tooling.

5) Serveur HTTP (Apache)

  • Apache HTTP Server Docs : configuration, modules, MPM, filtres, handlers.

Pourquoi c’est clé : reverse‑proxy, TLS, compression, headers, règles de routage.

6) Langage & runtime (PHP)

  • PHP Language Specification : syntaxe et sĂ©mantique de PHP.
  • PHP Manual : rĂ©fĂ©rence pratique (fonctions, types, runtime).

Pourquoi c’est clé : base du code Symfony et de l’écosystème PHP.

7) Interop PHP (PHP‑FIG / PSR)

  • Autoloading : PSR‑4.
  • Interfaces transverses : PSR‑3 (logs), PSR‑11 (container), PSR‑6/16 (cache).
  • HTTP : PSR‑7/15/17/18 (messages, handlers, factories, client).

Pourquoi c’est clé : compatibilité entre bundles, libs et composants Symfony.

8) Base de données (SQL + MySQL)

  • SQL (ISO/IEC 9075) : standard SQL (cadre, grammaire, concepts).
  • MySQL Reference Manual : implĂ©mentation concrète, dialecte, diffĂ©rences SQL.

Pourquoi c’est clé : requêtes, transactions, index, compatibilité et limites.

Détails SQL/MySQL (transactions, isolation, index)

  • Transactions InnoDB : modèle transactionnel combinant multiversioning (lectures cohĂ©rentes non bloquantes) et verrouillage classique, avec verrouillage au niveau ligne.
  • Isolation : 4 niveaux (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE) ; par dĂ©faut REPEATABLE READ pour InnoDB.
  • Indexation (types) : CREATE INDEX supporte USING BTREE ou USING HASH ; FULLTEXT et SPATIAL sont des index spĂ©ciaux.
  • Indexation (clustered / secondaire) : l’index cluster correspond gĂ©nĂ©ralement Ă  la clĂ© primaire ; les index secondaires stockent la clĂ© primaire pour retrouver la ligne.
  • Indexation (bonnes pratiques) : indexer les colonnes utilisĂ©es dans les filtres amĂ©liore les SELECT, mais trop d’index dĂ©grade les INSERT/UPDATE/DELETE.

9) Contrats de framework (Symfony)

  • HttpKernel : cycle Request → Response, Ă©vĂ©nements du kernel.

Pourquoi c’est clé : structure l’architecture Symfony et le flux d’exécution.

10) Flux Request → Response (Symfony)

RequĂŞte HTTP
-> HttpKernel::handle(Request)
   -> kernel.request
   -> routing (résolution du contrôleur)
   -> kernel.controller
   -> kernel.controller_arguments
   -> controller
   -> kernel.view (si le contrĂ´leur ne retourne pas une Response)
   -> kernel.response
-> Response
-> send()
-> kernel.terminate (optionnel, après envoi)

Le cycle est piloté par des événements (kernel.request → kernel.response) et peut se terminer par kernel.terminate après l’envoi de la réponse.

RĂ´le et position du WHATWG

  • Éditeur principal des Living Standards de la plateforme web (HTML, DOM, Fetch, URL, Encoding).
  • Modèle “Living Standard” : mise Ă  jour continue, alignĂ©e sur l’implĂ©mentation rĂ©elle des navigateurs.
  • Accord W3C‑WHATWG (2019) : HTML et DOM sont dĂ©veloppĂ©s principalement dans les repos WHATWG ; le W3C publie des “Review Drafts” et peut en faire des Recommandations.

Cheat sheet (résumé express)

  • HTTP/TLS : RFC 9110/9112/9113/9114 + RFC 8446.
  • Web platform : WHATWG HTML/DOM/Fetch/URL/Encoding (Living Standards).
  • CSS : W3C CSS Snapshot 2025.
  • JavaScript : ECMAScript 2025 (ECMA‑262).
  • PHP : PHP Language Spec + PHP Manual + PSR (PHP‑FIG).
  • Base de donnĂ©es : SQL (ISO 9075) + MySQL 8.0 Reference Manual.
  • Symfony : HttpKernel (Request → Response, Ă©vĂ©nements kernel).

Références (sources officielles)

Assistant documentaire

Posez une question sur la documentation. Les réponses citent leurs sources — un clic ouvre le document à gauche.

Loading…
Loading the web debug toolbar…
Attempt #