TailwindPHP
Port TailwindCSS 4.x pre PHP. Generujte pomocné CSS Tailwind v PHP bez Node.js a bez kroku zostavenia. Obsahuje cn(), tailwind-merge, CVA, pluginy pre typografiu a formuláre a CLI.
composer require tailwindphp/tailwindphpNajnovšie vydanie 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'V praxi
Odovzdajte značky a voliteľnú vstupnú konfiguráciu CSS v jednom volaní PHP a získajte štýlový súbor.
Generujte CSS zo PHP
tw::generate() prehľadáva značky, hľadá názvy tried a vracia iba CSS, ktoré tieto triedy potrebujú. Druhý argument prijíma vstupné CSS, takže farba definovaná v @theme sa zmení na pomocnú triedu.
cn() zostavuje reťazce tried a rieši konflikty Tailwind, takže vyhráva posledný konfliktný nástroj.
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'Čisté PHP
Bez Node.js a bez kroku zostavenia. Funguje na PHP 8.2+ so štandardnými rozšíreniami mbstring a ctype. Spustite composer require a môžete začať.
Sleduje TailwindCSS v4.3.3
Port Tailwind v4.3.3 s rovnakými nástrojmi, variantmi a direktívami. Známe rozdiely oproti Tailwind sú zdokumentované.
Viac ako 4,400 testov
Výstup sa overuje pomocou vlastných testovacích balíkov TailwindCSS, získaných zo zdrojového kódu TypeScript a opakovane spúšťaných pri každom odoslaní zmien.
Všetky nástroje a varianty
Úplná sada nástrojov a všetky varianty: hover, focus, responzívne zobrazenie, tmavý režim, dopyty kontajnera a ľubovoľné hodnoty.
Direktívy CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin a @source sa analyzujú a vyhodnocujú v PHP.
Generovanie za behu
Generujte pomocné CSS priebežne z HTML, obsahu databázy alebo premenných šablóny. Krok zostavenia nie je potrebný.
Všetko potrebné v balíku
cn(), merge(), join() a variants(): clsx, tailwind-merge a port CVA pre PHP bez ďalších balíkov.
Zásuvné moduly
@tailwindcss/typography a @tailwindcss/forms portované pre PHP, navyše PHP plugin API pre vlastné nástroje a komponenty.
CLI
bin/tailwindphp vytvorí štýlový súbor zo vstupného súboru CSS pomocou volieb -i, -o, --watch a --minify.
Kontrola témy
Získajte surové aj vypočítané hodnoty vlastností, farby, body prerušenia a rozostupy pre ľubovoľnú triedu priamo z PHP.
Vyrovnávacia pamäť a minifikátor
Vstavaný minifikátor CSS a vyrovnávacia pamäť súborov s TTL urýchľujú opakované zostavenia a zmenšujú výstup.
Rámce WordPress a PHP
Dodávajte témy a pluginy založené na Tailwind bez Node.js v zásobníku. TailwindPHP je jediná závislosť Composer.
Prečo TailwindPHP
Jedno prostredie počas prevádzky
Projekt PHP, ktorý používa Tailwind, zvyčajne preberá aj Node.js, inštaláciu npm a krok zostavenia v CI a Docker. TailwindPHP namiesto toho kompiluje CSS priamo v procese PHP.
CSS pre obsah známy až za behu
Značky z databázy, používateľského vstupu alebo premennej šablóny možno poslať priamo do tw::generate(), ktoré vráti iba CSS potrebné pre ich triedy.
Testované oproti pripnutej verzii Tailwind
Testovacie prípady sa získavajú zo zdrojového kódu Tailwind pripnutého v repozitári a spúšťajú sa oproti výstupu PHP, takže pri odchýlke zlyhá CI. Vydanie 1.7.0 bolo overené oproti Tailwind v4.3.3 pomocou 4,427 testov.
CSS pre každú stránku z jedného kompilátora
Tému skompilujte raz pomocou tw::compile() a potom pre každú stránku zavolajte generateExact(). Každé volanie vráti to, čo by vytvorila studená tw::generate() tejto stránky, bez opätovného parsovania témy.
V porovnaní s
Tailwind Labs ponúka vlastné spôsoby zostavovania Tailwind CSS. Takto sa líši TailwindPHP.
| Nástroj | V čom vyniká | Rozdiel oproti TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | V čom vynikáVlastný nástroj Tailwind pre príkazový riadok, ktorý sa inštaluje z npm. Prehľadá vaše súbory HTML, komponenty a šablóny, vyhľadá názvy tried a zapíše zodpovedajúce štýly do statického súboru CSS. | Rozdiel oproti TailwindPHPTailwindPHP kompiluje priamo v PHP bez inštalácie Node.js ani npm. Sleduje konkrétne vydanie Tailwind (v4.3.3 v 1.7.0) a jeho vlastný benchmark ukazuje, že pôvodný TypeScript vykonáva nízkoúrovňové operácie rýchlejšie. |
| samostatný Tailwind CLI | V čom vynikáTailwind CLI ako samostatný spustiteľný súbor pre projekty, ktoré ho chcú používať bez inštalácie Node.js. | Rozdiel oproti TailwindPHPSpustiteľný súbor je samostatná binárka, ktorá sa spúšťa ako krok zostavenia. TailwindPHP je balík Composer, ktorý volá váš kód PHP, takže dokáže generovať aj CSS za behu požiadavky z obsahu databázy alebo premenných šablóny. |
| Tailwind Play CDN | V čom vynikáZnačka script spúšťa Tailwind v prehliadači, takže si ho môžete vyskúšať bez kroku zostavenia. Dokumentácia Tailwind uvádza, že je určený na vývoj, nie na produkčné nasadenie. | Rozdiel oproti TailwindPHPTailwindPHP tiež nevyžaduje krok zostavenia, ale generuje CSS v PHP na serveri a vracia ho ako reťazec, napríklad na zápis do súboru so štýlmi. |
Otázky a odpovede
Stručné odpovede z dokumentácie TailwindPHP.
Vydanie 1.7.0 sleduje Tailwind CSS v4.3.3. Jeho testovacie sady boli znovu získané podľa tejto verzie.
Výstup sa testuje pomocou prípadov získaných z vlastných testovacích súborov Tailwind. Záznam zmien 1.7.0 uvádza niekoľko rozdielov v serializácii; napríklad .p-0 zachováva padding: 0px, zatiaľ čo referenčný CLI vytvára padding: 0.
Nie. Doplnky sú PHP: doplnky pre typografiu a formuláre sú portované a vlastný doplnok môžete vytvoriť podľa PHP rozhrania doplnkov API a zaregistrovať ho pomocou registerPlugin(). Názov @plugin, ktorý nie je zaregistrovaný, vyvolá chybu.
V benchmarku projektu na PHP 8.4.5 a Apple M1 trvalo generovanie celej stránky približne 14 ms na stránku. Pri opakovanom vstupe vyrovnávacia pamäť súborov preskočí kompiláciu a dlho žijúci kompilátor s generateExact() opätovne používa parsovanú tému.
Nie. IntelliSense, automatické dopĺňanie, triedenie tried a zdrojové mapy sú zámerne vynechané. TailwindPHP generuje iba CSS.
PHP 8.2 alebo novší s rozšíreniami ctype a mbstring. composer.json deklaruje verziu PHP a CI spúšťa testovaciu sadu na PHP 8.2, 8.3 a 8.4.
Nainštalujte balík pomocou Composer a podľa úvodnej príručky vygenerujte svoj prvý súbor so štýlmi z PHP.