TailwindPHP
TailwindCSS-porttaus: 4.x PHP-kielelle. Luo Tailwind-apuohjelmien CSS-luokkia PHP:llä ilman Node.js-asennusta tai koontivaihetta. Mukana cn(), tailwind-merge, CVA, typografia- ja lomakelaajennukset sekä CLI.
composer require tailwindphp/tailwindphpUusin julkaisu v1.7.0 MIT PHP 8.2+
use function TailwindPHP\merge;
merge('px-2 py-1 bg-red-500', 'px-4 bg-blue-500');
// => 'py-1 px-4 bg-blue-500'
// Conflict resolution is variant-aware
merge('hover:bg-red-500', 'hover:bg-blue-500');
// => 'hover:bg-blue-500'Käytännössä
Anna merkintäkieli ja valinnainen syöte CSS yhdellä PHP-kutsulla, niin saat tyylitiedoston.
Luo CSS lähteestä PHP
tw::generate() skannaa merkintäkielestä luokkanimet ja palauttaa vain ne CSS, joita kyseiset luokat tarvitsevat. Toisena argumenttina annetaan syöte CSS, joten kohteessa @theme määritellystä väristä tulee apuohjelma.
cn() muodostaa luokkamerkkijonot ja ratkaisee Tailwind-ristiriidat, joten viimeinen ristiriitainen apuohjelma jää voimaan.
use TailwindPHP\tw;
$css = tw::generate(
'<div class="bg-brand p-4">Hello</div>',
'@import "tailwindcss"; @theme { --color-brand: #3b82f6; }'
);
// .bg-brand now resolves to var(--color-brand)use function TailwindPHP\cn;
cn('px-2 py-1', 'px-4'); // 'py-1 px-4'
cn('btn', ['btn-primary' => true]); // 'btn btn-primary'Pelkkää PHP-koodia
Ei Node.js-asennusta eikä koontivaihetta. Toimii versiolla PHP 8.2+ ja tavallisilla mbstring- ja ctype-laajennuksilla. Asenna komennolla composer require ja aloita.
Seuraa versiota TailwindCSS v4.3.3
Tailwind-porttaus, jossa ovat samat apuohjelmat, variantit ja direktiivit kuin v4.3.3:ssä. Tunnetut erot Tailwind:ään on dokumentoitu.
4,400+ testiä
Tuloste tarkistetaan tuotteen TailwindCSS omilla testisarjoilla, jotka on poimittu lähdekoodista TypeScript ja suoritetaan uudelleen jokaisella pushilla.
Kaikki apuohjelmat ja variantit
Koko apuohjelmavalikoima ja kaikki variantit: hover, focus, responsiivisuus, tumma tila, säiliökyselyt ja mielivaltaiset arvot.
CSS-direktiivit
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin ja @source jäsennetään ja ratkaistaan ympäristössä PHP.
Luonti suorituksen aikana
Luo apuohjelmien CSS lennossa lähteestä HTML, tietokannan sisällöstä tai mallipohjamuuttujista. Koontivaihetta ei tarvita.
Kaikki tarvittava mukana
cn(), merge(), join() ja variants(): clsx, tailwind-merge ja CVA on portattu kohteeseen PHP ilman lisäpaketteja.
Liitännäiset
@tailwindcss/typography ja @tailwindcss/forms on portattu kohteeseen PHP, lisäksi mukana on PHP-laajennus-API omien apuohjelmien ja komponenttien luontiin.
CLI
bin/tailwindphp luo tyylitiedoston syötetiedostosta CSS valitsimilla -i, -o, --watch ja --minify.
Tarkastele teemaa
Lue minkä tahansa luokan raakamuotoiset ja lasketut ominaisuusarvot, värit, katkaisupisteet ja välistykset suoraan kohteesta PHP.
Välimuisti ja pienennin
Sisäänrakennettu CSS-pienennin ja TTL-arvolla toimiva tiedostovälimuisti nopeuttavat toistuvia koonteja ja pitävät tulosteen kevyenä.
WordPress- ja PHP-kehykset
Toimita kohteeseen Tailwind perustuvia teemoja ja laajennuksia ilman Node.js-ympäristöä. TailwindPHP on yksittäinen Composer-riippuvuus.
Miksi TailwindPHP
Yksi suoritustapa tuotannossa
PHP-projekti, joka ottaa käyttöön Tailwind:n, tarvitsee yleensä myös Node.js:n, npm-asennuksen ja koontivaiheen CI:ssä ja Docker-ympäristössä. TailwindPHP kääntää CSS:n suoraan PHP-prosessin sisällä.
CSS suorituksen aikana tunnetulle sisällölle
Tietokannasta, käyttäjän syötteestä tai mallipohjamuuttujasta tulevan merkintäkielen voi antaa suoraan kohteelle tw::generate(), joka palauttaa vain luokkien tarvitsemat CSS.
Tarkistettu kiinnitettyä Tailwind-julkaisua vasten
Testitapaukset poimitaan tietovarastoon kiinnitetystä lähteestä Tailwind ja suoritetaan PHP-tulostetta vasten, joten poikkeamat pysäyttävät CI:n. Julkaisu 1.7.0 tarkistettiin versiolla Tailwind v4.3.3, ja testejä oli 4,427.
Sivukohtainen CSS yhdestä kääntäjästä
Käännä teema kerran käyttämällä tw::compile():a ja kutsu sitten generateExact() jokaista sivua varten. Kukin kutsu palauttaa tuloksen, jonka sivun kylmä tw::generate() tuottaisi, jäsentämättä teemaa uudelleen.
Vertailu
Tailwind Labs toimittaa omat tapansa rakentaa Tailwind CSS. Näin TailwindPHP eroaa niistä.
| Työkalu | Sopii hyvin | Ero kohteeseen TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Sopii hyvinTuotteen Tailwind oma komentorivityökalu, joka asennetaan lähteestä npm. Se etsii luokkien nimiä HTML-tiedostoista, komponenteista ja mallipohjista ja kirjoittaa niitä vastaavat tyylit staattiseen CSS-tiedostoon. | Ero kohteeseen TailwindPHPTailwindPHP kääntää koodin PHP:ssä ilman Node.js- tai npm-asennusta. Se seuraa tiettyä Tailwind-julkaisua (v4.3.3 kohteessa 1.7.0), ja sen omassa vertailutestissä TypeScript-alkuperäinen toteutus suorittaa matalan tason operaatiot nopeammin. |
| Tailwind itsenäinen CLI | Sopii hyvinTailwind CLI itsenäisenä suoritettavana ohjelmana projekteille, jotka haluavat käyttää sitä asentamatta tuotetta Node.js. | Ero kohteeseen TailwindPHPSuoritettava ohjelma on erillinen binaaritiedosto, joka käynnistyy koontivaiheessa. TailwindPHP on Composer-paketti, jota PHP-koodisi kutsuu, joten se voi myös luoda CSS-tuloksen pyynnön aikana tietokannan sisällöstä tai mallipohjamuuttujista. |
| Tailwind Play CDN | Sopii hyvinSkriptiluokka, joka suorittaa Tailwind:n selaimessa kokeilua varten ilman koontivaihetta. Tuotteen Tailwind dokumentaation mukaan se on suunniteltu kehityskäyttöön eikä tuotantoon. | Ero kohteeseen TailwindPHPTailwindPHP ei myöskään vaadi koontivaihetta, mutta se luo CSS-tuloksen palvelimella ympäristössä PHP ja palauttaa sen merkkijonona esimerkiksi tyylitiedostoon kirjoittamista varten. |
Kysymykset ja vastaukset
Lyhyet vastaukset TailwindPHP-dokumentaatiosta.
Julkaisu 1.7.0 seuraa versiota Tailwind CSS v4.3.3. Sen testisarjat poimittiin uudelleen tätä versiota vasten.
Tulosta testataan tapauksilla, jotka on poimittu Tailwind:n omista testitiedostoista. 1.7.0:n muutosloki kirjaa muutamia sarjoituseroja. Esimerkiksi .p-0 säilyttää arvon padding: 0px, kun taas vertailu-CLI tuottaa padding: 0.
Et. Laajennukset ovat PHP: typografia- ja lomakelaajennukset on portattu, ja voit kirjoittaa omia laajennuksia PHP-laajennuksen API-rajapintaa vasten ja rekisteröidä ne komennolla registerPlugin(). Rekisteröimätön @plugin-nimi aiheuttaa virheen.
Projektin vertailutestissä, joka ajettiin ympäristössä PHP 8.4.5 ja laitteella Apple M1, koko sivun luonti kesti noin 14 ms sivua kohti. Toistuvalla syötteellä tiedostovälimuisti ohittaa kääntämisen, ja pitkäikäinen kääntäjä, jolla on generateExact(), käyttää uudelleen jäsennettyä teemaa.
Eivät. IntelliSense, automaattinen täydennys, luokkien lajittelu ja lähdekartat on jätetty tarkoituksella pois. TailwindPHP luo vain CSS.
PHP 8.2 tai uudempi sekä ctype- ja mbstring-laajennukset. composer.json määrittää version PHP, ja CI suorittaa testisarjan versioilla PHP 8.2, 8.3 ja 8.4.
Asenna paketti komennolla Composer ja luo ensimmäinen tyylitiedostosi lähteestä PHP aloitusoppaan avulla.