Suderinamumas ir naujinimas
Šiame puslapyje rasite tai, ką reikia žinoti prieš naujinant arba tikintis tikslios išvesties: vykdymo aplinkos reikalavimus, kurio TailwindCSS leidimo laikosi prievadas, kuo TailwindPHP sąmoningai skiriasi nuo TailwindCSS ir kiekvieno leidimo pastabas. Visą istoriją rasite čia: CHANGELOG.md.
Reikalavimai
- PHP 8.2 arba naujesnė versija. Testų rinkinys veikia su PHP 8.2, 8.3 ir 8.4.
- Plėtiniai
ctypeirmbstring. Kompiliatorius iškviečiactype_*irmb_chr(). Abu plėtiniai įtraukti į daugumą PHP sąrankų ir oficialius Docker atvaizdus, betcomposer.jsonjų dar nedeklaruoja (#11), todėl be jų įdiegiant paketą vykdymo metu kyla klaida. - Pasirinktinai:
pcntlleidžia CLI--watchrežimui tvarkingai sustoti tiesSIGINT/SIGTERM. Be jo stebėjimo režimas vis tiek veikia.
Nenaudojama Node.js, FFI ar savųjų dvejetainių failų.
Kurio TailwindCSS leidimo laikomasi
Leidimas 1.7.0 laikosi TailwindCSS v4.3.3. Pradinės saugyklos versija fiksuojama kaip git submodulis faile reference/tailwindcss, jos testų rinkiniai išgaunami iš šios fiksuotos kopijos, o 4,427 testai vykdomi po kiekvieno išsiuntimo (žr. Našumas ir testavimas). Perkelti papildiniai naudoja @tailwindcss/typography ir @tailwindcss/forms, o klasės įrankiai — clsx, tailwind-merge ir CVA; visų jų versijos fiksuojamos tuo pačiu būdu.
Žinomi skirtumai nuo TailwindCSS
Serializavimo ypatumai
Sugeneruotas CSS atitinka etaloninių testų rinkinius. Kai kurios serializavimo detalės skiriasi nuo to, ką pateikia TailwindCSS CLI, tačiau nė viena iš jų nepakeičia kaskados:
- Tiekėjų prefiksai: kai etalonas pateikia ir autoriaus parašytą eilutę
-webkit-*, ir sugeneruotą, TailwindPHP pateikia vieną eilutę. - Žemesnio lygio pseudolementai (
::file-selector-button,::-webkit-datetime-edit-*) lieka autoriaus parašytuose selektorių sąrašuose, užuot buvę išskaidyti į po vieną taisyklę kiekvienam pseudolementui. - Autoriaus parašytos eilutės su viengubomis kabutėmis lieka su viengubomis kabutėmis (
'Segoe UI'), užuot buvusios normalizuotos į dvigubas kabutes. - Kartu pasitaikantys ilgieji savybių pavadinimai nesujungiami į trumpinį (Tailwind išvestyje jo niekada nereikia).
.p-0išsaugopadding: 0px, kai etalonas CLI pateikiapadding: 0, nes ištrauktame testų korpuse naudojama0pxforma. Minifikatorius ją sutrumpina iki0.
Neįtraukta
TailwindPHP yra CSS kompiliatorius. Jame nėra Tailwind ekosistemos redaktoriaus įrankių (IntelliSense, automatinio užbaigimo, klasių rūšiavimo) ir išeities kodų žemėlapių, todėl CLI neturi parinkties --map.
Turinio nuskaitymas
tw::generate() ir TailwindCompiler::generate() skaito klasių pavadinimus tik iš class ir className atributų. Jei klasių pavadinimai saugomi PHP arba JavaScript eilutėse, naudokite tw::extractCandidatesFromStrings() arba @source inline("…"). @source kelio formų API nepaiso, o CLI jas palaiko tik iš dalies (žr. toliau).
Žinomos dabartinio leidimo problemos
| Sritis | Dabartinė elgsena | Problema |
|---|---|---|
CLI @source |
Keliai ir glob šablonai netaikomi; vietoj jų nuskaitomas įvesties failo katalogas, o @source not nieko nepašalina. Žr. Ką nuskaito CLI |
#8 |
CLI --optimize |
Minifikuoja, kaip --minify |
#9 |
| Ilgosios CLI parinktys | Nepaisoma --input file.css (atskirta tarpais); naudokite --input=file.css arba -i file.css |
#13 |
| Papildinių variantai | addVariant()/matchVariant() variantai ir tipografijos elementų modifikatoriai (prose-headings: …) kompiliuojami be selektoriaus |
#10 |
@apply mišiniai |
@apply --my-mixin; pašalinamas, užuot perduotas toliau |
#12 |
| Etaloniniai importai | Išvestis tuščia, kai etaloninis importas nurodytas prieš paslaugų importą; @import "tailwindcss" reference neveikia |
#14 |
Atnaujinimo pastabos
1.7.0
- Išvesties baitai skiriasi nuo 1.6.x, nors funkciniu požiūriu jie atitinka TailwindCSS v4.3.3 etaloną. Matomi pakeitimai:
- Tarpų daugikliai:
p-1pateikiapadding: var(--spacing)vietojcalc(), o daugiklis0pateikia paprastą nulio ilgio reikšmę. - Trupmenos paverčiamos procentais:
w-1/2pateikiawidth: 50%. - Spalvos:
oklch()/oklab()šviesumas serializuojamas procentais (oklch(62.3% .214 259.815)),whiteirblacksutrumpinami iki#fffir#000. - CSS2 pseudoelementai serializuojami su vienu dvitaškiu (
:before,:after,:first-letter,:first-line). - Įdėtinės
@media/@supports/@containertaisyklės išskleidžiamos vietoje, išlaikant pradinę tvarką, užuot perkeltos į pabaigą; deklaracijos perrikiuojamos taip, kaip jas išrikiuoja „lightningcss“; pašalinamos nustelbtos pasikartojančios deklaracijos.
- Tarpų daugikliai:
- Podėliai, kurių raktai paremti išvestimi, vieną kartą taps negaliojantys.
tw::generate()failų podėlio rakte nėra TailwindPHP versijos, todėl atnaujinę paleiskitetw::clearCache()(arba išvalykite katalogą, kurį nurodėte kaipcache). kompiliatoriaus būsenos podėlis pats panaikina pasenusius įrašus. - Nauja:
@variantautoriaus CSS, CSS mišiniai@apply,@media referenceir@import "…" reference, visas--value()/--modifier()variklis funkciniam@utility, griežtesnis@utilitypavadinimų tikrinimas irtw::compile()parinktispolyfills.
1.6.1
- Nauja: įrankis
container(width: 100%ir po vienąmax-widthkiekvienam lūžio taškui). - Sudėtiniai
--tw-*kintamieji (perstūmimas, mastelio keitimas, pasukimas, pakreipimas, filtrai ir kiti) dabar registruojami@property, todėl stiliaus lapuose sukuriamos šios@propertytaisyklės, o naršyklėje pradeda veikti transformacijos, tokios kaiptranslate-x-7.
1.6.0
- Nauja: ilgalaikis kompiliatoriaus būsenos podėlis (
stateCacheFilesutw::compile()irTailwindCompiler,StateCache\compileCssCached()) ir atskiros funkcijosparseCssState()/finalizeCssState()/compileParsed(). Esami iškvietimai veikia kaip anksčiau.
1.5.0
TailwindCompilerpoklasiai, kuriuose pakeičiamagenerate()arbacss(), turi pridėti pasirenkamą parametrąbool $minify = false; PHP atmeta pakeistus metodus, kuriuose praleistas pasirenkamas tėvinės klasės parametras.- Minifikuotą išvestį kuria serializatorius, todėl minifikuoti baitai šiek tiek skiriasi nuo 1.4.x (podėliai, kurių raktai paremti minifikuota išvestimi, vieną kartą taps negaliojantys).
- Nauja:
generateExact()ircssExact(), skirti kiekvieno puslapio CSS gauti iš vieno ilgai veikiančio kompiliatoriaus.