Aller au contenu

Avancé

TailwindPHP est un portage 1:1 de TailwindCSS 4.x en PHP pur. Le principe directeur est la fidélité : la base de code reproduit le projet TypeScript d’origine fichier par fichier, avec les mêmes noms de fichiers et la même organisation. Ainsi, chaque comportement de TailwindCSS a un équivalent évident dans PHP, et les changements en amont peuvent être suivis sans conjecture.

Tout ce qui ne fait pas partie du port TailwindCSS se trouve à un seul endroit clairement identifié : src/_tailwindphp/. Ce répertoire contient les utilitaires spécifiques à PHP — une réimplémentation des transformations Rust lightningcss (LightningCss.php), le minificateur CSS (CssMinifier.php) et les ports des bibliothèques associées (lib/ : clsx, tailwind-merge, CVA), sous l'espace de noms TailwindPHP\Lib\*. Tout le reste dans src/ correspond à un fichier dans TailwindCSS.

La conformité est vérifiée à l'aide de la suite de tests de Tailwind. Les cas de test sont extraits directement des fichiers .test.ts de TailwindCSS et exécutés sur la sortie de PHP ; tout écart par rapport au comportement d'origine entraîne donc immédiatement un échec. Résultat : 4,427 tests réussis (version 1.7.0, avec la référence TailwindCSS v4.3.3), couvrant les utilitaires, les variantes, les directives, les plugins, le CLI et les bibliothèques associées.

Pages

  • Architecture — le pipeline de compilation (analyse → balayage → compilation → optimisation → minification), l'organisation des sources, l'équivalent de lightningcss et la convention des marqueurs @port-deviation.
  • Mise en cache et minification — le cache de sortie basé sur les fichiers (cache, cacheTtl, clearCache()), le cache d'état du compilateur (stateCacheFile) et le rôle du minificateur CSS.
  • Performances et tests — les optimisations propres à PHP, la vérification de la parité avec TailwindCSS et le contrôle de qualité du code.
  • Compatibilité et mises à niveau — les prérequis, la version de TailwindCSS suivie, les différences connues par rapport à TailwindCSS et les notes de mise à niveau pour chaque version.