Kompatibilitás és frissítés
Ez az oldal összefoglalja, amit frissítés előtt vagy a pontos kimenetre támaszkodva tudnia kell: a futtatási követelményeket, hogy a port melyik TailwindCSS kiadást követi, miben tér el szándékosan az TailwindPHP az TailwindCSS-től, valamint az egyes kiadások megjegyzéseit. A teljes előzmény a CHANGELOG.md fájlban található.
Követelmények
- PHP 8.2 vagy újabb. A tesztcsomag PHP 8.2, 8.3 és 8.4 verzióján fut.
- A
ctypeés ambstringbővítmények. A fordító actype_*és amb_chr()függvényt hívja. Ezek a legtöbb PHP builddel és a hivatalos Docker lemezképekkel együtt érkeznek, de acomposer.jsonmég nem deklarálja őket (#11), így nélkülük a csomag települ, de futás közben hibát jelez. - Nem kötelező:
pcntllehetővé teszi, hogy a CLI--watchmódja szabályosan leálljonSIGINT/SIGTERMesetén. Nélküle a figyelő mód továbbra is működik.
Nincs Node.js, FFI vagy natív bináris.
Melyik TailwindCSS kiadást követi
A 1.7.0 kiadás a TailwindCSS v4.3.3 verzióját követi. Az upstream adattár a reference/tailwindcss-ban git almodulként van rögzítve, a tesztcsomagjai ebből a rögzített másolatból származnak, a 4,427 tesztjei pedig minden feltöltéskor lefutnak (lásd: Teljesítmény és tesztelés). Az átültetett bővítmények az @tailwindcss/typography és az @tailwindcss/forms mintáját követik, az osztálysegédprogramok pedig a clsx, az tailwind-merge és a CVA mintáját, mindegyik ugyanígy rögzített verzióval.
Ismert eltérések az TailwindCSS-től
Szerializálási részletek
A létrehozott CSS megfelel a referencia tesztcsomagjainak. Néhány szerializálási részlet eltér attól, amit a TailwindCSS CLI kiír; ezek egyike sem változtatja meg a kaszkádot:
- Gyártóspecifikus előtagok: ha a referencia a szerzői
-webkit-*sort és egy generált sort is kiad, az TailwindPHP csak egy sort ír ki. - Az alacsonyabb szintre alakított pszeudoelemek (
::file-selector-button,::-webkit-datetime-edit-*) a szerzői szelektorlistában maradnak, nem bomlanak külön szabályokra pszeudoelemenként. - A szerzői, egyszeres idézőjeles karakterláncok egyszeres idézőjelesek maradnak (
'Segoe UI'), nem normalizálódnak dupla idézőjelekre. - Az együtt előforduló hosszú alakú tulajdonságok nem vonódnak össze rövidített tulajdonsággá (az Tailwind saját kimenetében erre nincs szükség).
- Az
.p-0megtartja apadding: 0pxértéket ott, ahol a referencia CLI apadding: 0értéket adja ki, mert a kinyert tesztkorpusz a0pxalakot rögzíti. A tömörítő ezt0alakra rövidíti.
Nem része
A TailwindPHP egy CSS fordító. Kimaradnak belőle a Tailwind ökoszisztéma szerkesztőeszközei (IntelliSense, automatikus kiegészítés, osztályok rendezése) és a forrástérképek, ezért a CLI nem kínál --map beállítást.
Tartalom beolvasása
A tw::generate() és a TailwindCompiler::generate() csak a class és className attribútumokból olvassa ki az osztályneveket. A PHP vagy JavaScript karakterláncokban lévő osztálynevekhez használja a tw::extractCandidatesFromStrings() vagy a @source inline("…") eszközt. A @source elérési út alakjait a API figyelmen kívül hagyja, a CLI pedig csak részben veszi figyelembe (lásd alább).
Ismert problémák a jelenlegi kiadásban
| Terület | Jelenlegi működés | Probléma |
|---|---|---|
CLI @source |
Az elérési utak és globminták nem érvényesülnek; a rendszer a bemeneti fájl könyvtárát vizsgálja, a @source not pedig semmit sem zár ki. Lásd: Mit vizsgál a CLI |
#8 |
CLI --optimize |
Tömörít, a --minify-hoz hasonlóan |
#9 |
| CLI hosszú kapcsolók | A --input file.css (szóközzel elválasztva) figyelmen kívül marad; használja a --input=file.css vagy -i file.css kapcsolót |
#13 |
| Bővítményváltozatok | A addVariant()/matchVariant() változatok és a tipográfiai elemek módosítói (prose-headings: …) a szelektoruk nélkül fordulnak le |
#10 |
@apply mixinek |
A @apply --my-mixin; eltűnik ahelyett, hogy változatlanul továbbadódna |
#12 |
| Referenciaimportok | A kimenet üres, ha egy referenciaimport megelőzi a segédprogramok importját; a @import "tailwindcss" reference nincs hatással |
#14 |
Frissítési megjegyzések
1.7.0
- A kimenet bájtszinten változik az 1.6.x-hez képest, miközben funkcionálisan megfelel az TailwindCSS v4.3.3 referenciának. A látható változások közé tartozik:
- Térközszorzók: a
p-1padding: var(--spacing)alakot ad kicalc()helyett, a0szorzó pedig egyszerű nulla hosszúságot eredményez. - A törtek százalékká alakulnak: a
w-1/2width: 50%alakot adja. - Színek: a
oklch()/oklab()világossági értéke százalékként szerializálódik (oklch(62.3% .214 259.815)), awhiteésblackpedig#fffés#000alakra rövidül. - A CSS2 pszeudoelemek egy kettősponttal szerializálódnak (
:before,:after,:first-letter,:first-line). - A beágyazott
@media/@supports/@containerszabályok helyben, forrássorrendben lapulnak ki, nem a végére kerülnek; a deklarációk a lightningcss rendezését követik, az árnyékolt ismétlődő deklarációk pedig törlődnek.
- Térközszorzók: a
- A kimenethez kötött gyorsítótárak egyszer ürülnek. A
tw::generate()fájlgyorsítótára nem veszi figyelembe a TailwindPHP verzióját, ezért frissítés után futtassa atw::clearCache()parancsot (vagy ürítse ki acachekönyvtárat). A fordítóállapot gyorsítótára önmagát érvényteleníti. - Új:
@varianta szerzői CSS nyelvben, CSS mixinek a@applynyelvben,@media referenceés@import "…" reference, a teljes--value()/--modifier()motor a funkcionális@utility-hez, szigorúbb@utilitynévellenőrzés, valamint atw::compile()polyfillsbeállítása.
1.6.1
- Új: a
containersegédprogram (width: 100%, valamint töréspontonként egymax-width). - Az összetett
--tw-*változók (eltolás, méretezés, forgatás, döntés, szűrők és mások) mostantól regisztrálva vannak a@propertyrendszerben, így a stíluslapok megkapják ezeket a@propertyszabályokat, és atranslate-x-7-hez hasonló transzformációk működnek a böngészőben.
1.6.0
- Új: a tartós fordítóállapot-gyorsítótár (
stateCacheFileatw::compile()ésTailwindCompileresetén,StateCache\compileCssCached()), valamint a különállóparseCssState()/finalizeCssState()/compileParsed()függvények. A meglévő hívások pontosan úgy működnek, mint korábban.
1.5.0
- Azoknak a
TailwindCompileralosztályoknak, amelyek felülírják agenerate()vagycss()metódust, hozzá kell adniuk a nem kötelezőbool $minify = falseparamétert; a PHP elutasítja azokat a felülírásokat, amelyek kihagyják az ősosztály nem kötelező paraméterét. - A tömörített kimenetet a szerializáló állítja elő, ezért a tömörített bájtok kissé eltérnek a 1.4.x kimenetétől (a tömörített kimenethez kötött gyorsítótár egyszer ürül).
- Új:
generateExact()éscssExact()oldalankénti CSS adatokhoz egy hosszan futó fordítóból.