Siirry sisältöön

TailwindPHP

TailwindPHP on ohjelman TailwindCSS 4.x 1:1-porttaus kielelle PHP. Se jäsentää CSS-tiedostosi, etsii merkinnöistä luokkien nimet ja luo apuluokka-CSS-tyylit, jotka TailwindCSS v4.3.3 tuottaa — kokonaan PHP-kielellä, ilman Node.js-riippuvuutta tai build-vaihetta.

  • Pelkkää PHP-kieltä — toimitetaan Composer-pakettina ja toimii PHP-versiossa 8.2 tai uudemmassa sekä tavallisilla ctype- ja mbstring-laajennuksilla. Ei exec-riippuvuutta, FFI:tä eikä natiivia build-työkaluketjua.
  • Testattu ohjelmaa TailwindCSS vasten — apuluokat, variantit, direktiivit ja CSS-funktiot vastaavat ohjelman TailwindCSS v4.3.3-toimintaa. Tuloste tarkistetaan ohjelman Tailwind omia testijoukkoja vasten: ne on poimittu lähdekoodista TypeScript ja suoritetaan uudelleen jokaisessa pushissa (4,400+ testiä). Tunnetut erot (muutamat sarjoituksen yksityiskohdat, jotka eivät vaikuta kaskadiin, sekä avoimet ongelmat) on lueteltu Yhteensopivuus ja päivitys-sivulla.
  • Koko ominaisuusvalikoima — kaikki TailwindCSS v4.3.3-apuluokat (mukaan lukien container, vierityspalkkien apuluokat, zoom-* ja tab-*), kaikki variantit (hover, focus, responsiiviset tyylit, tumma tila, säiliökyselyt ja mielivaltaiset arvot) sekä kaikki direktiivit: @import, @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin ja @source.
  • Kaikki tarvittava mukana — cn(), merge(), join() ja variants() sisältävät PHP-porttaukset clsxistä, tailwind-merge-kirjaston ja CVA:n, joten kaikki Tailwind-projektissa tarvittavat lisäkirjastot ovat jo valmiina.
  • Liitännäiset — @tailwindcss/typography ja @tailwindcss/forms on portattu kokonaan, ja PHP-liitännäinen API tarjoaa mahdollisuuden luoda omia liitännäisiä.

Miksi TailwindPHP on olemassa

TailwindCSS on kirjoitettu kielellä TypeScript ja toimii alustalla Node.js. Tämä on ehdoton vaatimus mille tahansa PHP-projektille, joka haluaa käyttää Tailwind-toimintoa: tarvitaan toinen ajonaikainen ympäristö, npm-asennus ja build-vaihe CI:ssä ja Docker-ympäristöissä. Monissa PHP-sovelluksissa se on ylimääräistä vaivaa, jota ei haluta ottaa.

TailwindPHP poistaa tämän tarpeen. Koodisi PHP kääntää Tailwind CSS suoraan käyttäen vain vakiokirjastoa. Se mahdollistaa asioita, jotka ovat JavaScript-työkaluketjulla hankalia tai mahdottomia:

  • WordPress- ja PHP-sovelluskehykset — toimita Tailwind-pohjaisia teemoja ja liitännäisiä vaatimatta käyttäjiä asentamaan Node.js-ohjelmaa tai suorittamaan buildia. Suorita vain composer require, niin olet valmis. Katso TailwindWP, esimerkki-WordPress-liitännäinen, joka luo lohkoeditorin CSS-tyylejä ohjelmalla TailwindPHP.
  • Ajonaikainen CSS-tyylien luonti — luo apuluokka-CSS-tyylejä lennossa käyttäjän syötteestä, tietokannan sisällöstä tai mallimuuttujista build-vaiheen sijaan.
  • Yksinkertaisempi käyttöönotto — tuotantoympäristöön ei tarvita Node.js-ohjelmaa, CI:hin build-vaihetta eikä npm-asennusta Docker-kuvaan.

Sama idea, jonka scssphp toi kielelle SCSS — koko kääntäjä PHP-kielellä.

Mitä se tekee

  • Kääntää TailwindCSS v4.3.3 -apuohjelmakokonaisuuden, variantit ja mielivaltaiset arvot sisällöstä löytyvien luokkanimien perusteella.
  • Ratkaisee kaikki direktiivit: @import (mukaan lukien virtuaalimoduulit, kuten tailwindcss ja tailwindcss/utilities, sekä reference-tuonnit), @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin ja @source.
  • Toteuttaa Tailwindn CSS-funktiot — theme(), --theme(), --spacing() ja --alpha() — sekä muunnoksen color-mix() → oklab() ja CSS-muunnokset, jotka TailwindCSS delegoi LightningCSSlle.
  • Ratkaisee @importn tiedostojärjestelmästä sisäkkäisine tuonteineen, kaksoiskappaleiden poistamisineen ja mukautettuine ratkaisijoineen tai upotetuista CSS-merkkijonoista.
  • Sisältää Preflightin (Tailwindn perusnollauksen), etuliitetuen, @property-varatoteutukset, toimittajakohtaiset etuliitteet ja avainruutujen nostamisen.
  • Sisältää cn()n, merge()n, join()n ja variants()/compose()n luokkanimien muodostamiseen, ristiriitojen ratkaisuun ja komponenttivariantteihin.
  • Sisältää typografia- ja lomakelaajennukset sekä mukautettujen laajennusten API-rajapinnan (addUtilities, matchUtilities, addComponents, addVariant, theme, …).
  • Tarjoaa CLIn (bin/tailwindphp) ja @tailwindcss/clin koontiasetukset sekä tiedostopohjaisen tulosteen välimuistin, pysyvän kääntäjän tilavälimuistin ja tuotantoon tarkoitetun CSS-minimoijan.

Mitä se ei ole

TailwindPHP on CSS-kääntäjä, ei editorityökaluketju. Siitä on tarkoituksella jätetty pois Tailwind-ekosysteemin IDE-ominaisuudet — IntelliSense, automaattinen täydennys, luokkien lajittelu ja lähdekartat — sillä ne ovat editorin ominaisuuksia eivätkä osa CSSn tuottamista. Kaikki CSSn tuottamiseen liittyvä kuuluu tähän; editorisi toimintaan liittyvä ei.

Mistä aloittaa

  • Aloitus — asenna paketti ja luo ensimmäinen tyylitiedostosi.
  • Käyttö — skannaa sisältöä, mukauta teemaa ja käytä Tailwindn direktiivejä.
  • Luokkien apuohjelmat — cn(), merge(), join() ja variants().
  • Laajennukset — typografia, lomakkeet ja omien laajennusten kirjoittaminen.
  • API — kaikki tw-direktiivit ja TailwindCompiler-instanssi.
  • CLI — bin/tailwindphp tiedostopohjaisiin koonteihin ja tarkkailutilaan.
  • Lisäasetukset — arkkitehtuuri, välimuisti, suorituskyky ja yhteensopivuushuomiot.