Kompatibilitet og opgradering
Denne side samler det, du skal vide, før du opgraderer eller er afhængig af præcist output: runtimekravene, hvilken TailwindCSS-udgivelse porteringen følger, hvor TailwindPHP bevidst adskiller sig fra TailwindCSS, og noter til hver udgivelse. Hele historikken findes i CHANGELOG.md.
Krav
- PHP 8.2 eller nyere. Testpakken køres på PHP 8.2, 8.3 og 8.4.
- Udvidelserne
ctypeogmbstring. Compileren kalderctype_*ogmb_chr(). Begge følger med de fleste PHP-builds og de officielle Docker-images, mencomposer.jsonangiver dem endnu ikke (#11), så pakken installeres uden dem, men fejler ved kørsel. - Valgfrit:
pcntlgør, at CLIs--watch-tilstand kan afslutte korrekt vedSIGINT/SIGTERM. Overvågningstilstanden virker stadig uden den.
Ingen Node.js, ingen FFI og ingen native binære filer indgår.
Hvilken TailwindCSS-udgivelse der følges
Udgivelse 1.7.0 følger TailwindCSS v4.3.3. Upstream-repositoriet er fastlåst som git-undermodul i reference/tailwindcss, dets testsuiter udtrækkes fra den fastlåste checkout, og 4,427-testene køres ved hvert push (se Ydeevne og test). De porterede plugins følger @tailwindcss/typography og @tailwindcss/forms, og klasseværktøjerne følger clsx, tailwind-merge og CVA, alle fastlåst på samme måde.
Kendte forskelle fra TailwindCSS
Serialiseringsdetaljer
Genereret CSS matcher referencetestsuiterne. Nogle få serialiseringsdetaljer adskiller sig fra det, TailwindCSS CLI udskriver, men ingen af dem ændrer kaskaden:
- Leverandørpræfikser: Når referencen udsender både den forfattede
-webkit-*-linje og en genereret linje, udsender TailwindPHP én linje. - Nedgraderede pseudo-elementer (
::file-selector-button,::-webkit-datetime-edit-*) forbliver i deres forfattede selektorlister i stedet for at blive opdelt i én regel pr. pseudo-element. - Forfattede strenge med enkelte anførselstegn forbliver med enkelte anførselstegn (
'Segoe UI') i stedet for at blive normaliseret til dobbelte anførselstegn. - Longhand-egenskaber, der optræder sammen, kombineres ikke til en shorthand (Tailwinds eget output har aldrig brug for det).
.p-0bevarerpadding: 0px, hvor referencen CLI udsenderpadding: 0, fordi det udtrukne testkorpus fastlåser formen0px. Minificeringen forkorter den til0.
Ikke inkluderet
TailwindPHP er en CSS-compiler. Den udelader redigeringsværktøjerne fra Tailwind-økosystemet (IntelliSense, autofuldførelse, sortering af klasser) og kildekort, så CLI ikke har nogen --map-mulighed.
Indholdsscanning
tw::generate() og TailwindCompiler::generate() læser kun klassenavne fra attributterne class og className. Brug tw::extractCandidatesFromStrings() eller @source inline("…") til klassenavne i strengene PHP eller JavaScript. Stiformer af @source ignoreres af API og understøttes kun delvist af CLI (se nedenfor).
Kendte problemer i den aktuelle udgivelse
| Område | Adfærd i dag | Problem |
|---|---|---|
CLI @source |
Stier og globs anvendes ikke; inputfilens mappe scannes i stedet, og @source not udelukker intet. Se Hvad CLI scanner |
#8 |
CLI --optimize |
Minificerer ligesom --minify |
#9 |
| Lange tilvalg i CLI | --input file.css (adskilt med mellemrum) ignoreres; brug --input=file.css eller -i file.css |
#13 |
| Pluginvarianter | Varianterne addVariant()/matchVariant() og typografiens elementmodifikatorer (prose-headings: …) kompileres uden deres selektor |
#10 |
@apply-mixins |
@apply --my-mixin; droppes i stedet for at blive sendt videre |
#12 |
| Referenceimporter | Outputtet er tomt, når en referenceimport kommer før importen af værktøjer; @import "tailwindcss" reference har ingen effekt |
#14 |
Opgraderingsnoter
1.7.0
- Outputtet ændres byte for byte sammenlignet med 1.6.x, men er funktionelt ækvivalent med referencen TailwindCSS v4.3.3. Blandt de synlige ændringer:
- Mellemrumsmultiplikatorer:
p-1udsenderpadding: var(--spacing)i stedet for encalc(), og en multiplikator på0udsender en almindelig nul-længde. - Brøker foldes til procenter:
w-1/2udsenderwidth: 50%. - Farver: lysstyrken i
oklch()/oklab()serialiseres som en procent (oklch(62.3% .214 259.815)),whiteogblackforkortes til#fffog#000. - CSS2-pseudo-elementer serialiseres med ét kolon (
:before,:after,:first-letter,:first-line). - Indlejrede
@media/@supports/@container-regler udflades på stedet i kildens rækkefølge i stedet for at blive flyttet til sidst; deklarationer omordnes, som lightningcss gør, og overskyggede dublerede deklarationer fjernes.
- Mellemrumsmultiplikatorer:
- Caches med output som nøgle skal genopbygges én gang. Filcachen i
tw::generate()medtager ikke TailwindPHP-versionen i sin nøgle, så kørtw::clearCache()(eller mappen, du angav somcache) efter opgradering. Compilerens tilstandscache invaliderer sig selv. - Nyt:
@varianti forfatter-CSS, CSS-mixins i@apply,@media referenceog@import "…" reference, hele--value()/--modifier()-motoren til funktionel@utility, strengere validering af@utility-navne og tilvalgetpolyfillsitw::compile().
1.6.1
- Nyt: værktøjet
container(width: 100%plus énmax-widthpr. breakpoint). - Sammensatte
--tw-*-variabler (translate, scale, rotate, skew, filtre og andre) registreres nu med@property, så stylesheets får disse@property-regler, og transformationer somtranslate-x-7træder i kraft i browseren.
1.6.0
- Nyt: den vedvarende cache for compilerens tilstand (
stateCacheFilepåtw::compile()ogTailwindCompiler,StateCache\compileCssCached()) samt de opdelte funktionerparseCssState()/finalizeCssState()/compileParsed(). Eksisterende kald fungerer præcis som før.
1.5.0
- Underklasser af
TailwindCompiler, der tilsidesættergenerate()ellercss(), skal tilføje den valgfrie parameterbool $minify = false; PHP afviser tilsidesættelser, der udelader en valgfri parameter fra forælderen. - Minificeret output kommer fra serializeren, så de minificerede bytes afviger en smule fra 1.4.x (caches med minificeret output som nøgle skal genopbygges én gang).
- Nyt:
generateExact()ogcssExact()til CSS pr. side fra én langlivet compiler.