TailwindPHP
TailwindCSS 4.x perkėlimas į PHP. Generuokite Tailwind pagalbinių klasių CSS naudodami PHP, be Node.js ir kompiliavimo etapo. Įtraukta cn(), tailwind-merge, CVA, tipografijos ir formų papildiniai bei CLI.
composer require tailwindphp/tailwindphpNaujausia versija 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'Praktinis pritaikymas
Perduokite žymėjimą ir pasirenkamą įvesties CSS vienu PHP iškvietimu ir gaukite stilių lentelę.
Generuokite CSS iš PHP
tw::generate() nuskaito žymėjimą, ieškodama klasių pavadinimų, ir grąžina tik tas CSS, kurių reikia toms klasėms. Antrasis argumentas priima įvesties CSS, todėl spalva, apibrėžta @theme, tampa pagalbine klase.
cn() kuria klasių eilutes ir išsprendžia Tailwind konfliktus, todėl laimi paskutinė konfliktuojanti pagalbinė klasė.
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'Grynai PHP
Nereikia Node.js ar kompiliavimo etapo. Veikia su PHP 8.2+ ir standartiniais mbstring bei ctype plėtiniais. Įdiekite naudodami composer require ir pradėkite.
Suderinama su TailwindCSS v4.3.3
Tailwind v4.3.3 perkėlimas su tomis pačiomis pagalbinėmis klasėmis, variantais ir direktyvomis. Žinomi skirtumai nuo Tailwind yra aprašyti dokumentacijoje.
4 400+ testų
Išvestis tikrinama pagal pačių TailwindCSS testų rinkinius, išgautus iš TypeScript šaltinio ir iš naujo vykdomus po kiekvieno pakeitimo.
Visos pagalbinės klasės ir variantai
Visas pagalbinių klasių rinkinys ir visi variantai: užvedus pelės žymeklį, sufokusavus, adaptyvieji, tamsusis režimas, konteinerio užklausos ir savavališkos reikšmės.
CSS direktyvos
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin ir @source analizuojamos bei išsprendžiamos naudojant PHP.
Generavimas vykdymo metu
Generuokite pagalbinių klasių CSS vykdymo metu pagal HTML, duomenų bazės turinį arba šablonų kintamuosius. Kompiliavimo etapo nereikia.
Viskas įtraukta
cn(), merge(), join() ir variants(): clsx, tailwind-merge ir CVA perkelti į PHP; papildomų paketų nereikia.
Papildiniai
@tailwindcss/typography ir @tailwindcss/forms perkelti į PHP, taip pat įtrauktas PHP papildinys API, skirtas jūsų pagalbinėms klasėms ir komponentams.
CLI
bin/tailwindphp iš įvesties CSS failo sukuria stilių lentelę naudodamas -i, -o, --watch ir --minify.
Peržiūrėkite temą
Skaitykite neapdorotas ir apskaičiuotas ypatybių reikšmes, spalvas, lūžio taškus bei tarpus bet kuriai klasei tiesiai iš PHP.
Podėlis ir minifikatorius
Įtaisytasis CSS minifikatorius ir failų podėlis su TTL pagreitina pakartotines kompiliacijas ir sumažina išvestį.
WordPress ir PHP karkasai
Kurkite Tailwind pagrįstas temas ir papildinius be Node.js steke. TailwindPHP yra viena Composer priklausomybė.
Kodėl TailwindPHP
Viena vykdymo aplinka produkcijoje
PHP projektas, kuriame naudojamas Tailwind, paprastai kartu apima ir Node.js, npm diegimą bei kompiliavimo etapą CI ir Docker. Vietoj to TailwindPHP kompiliuoja CSS PHP procese.
CSS dinaminio turinio atveju
Duomenų bazės, naudotojo įvesties ar šablono kintamojo žymėjimą galima tiesiog perduoti tw::generate(), kuri grąžina tik CSS, kurių reikia jo klasėms.
Patikrinta su konkrečia Tailwind versija
Testų atvejai išgaunami iš saugykloje nurodyto Tailwind šaltinio ir vykdomi su PHP rezultatu, todėl neatitikimai sustabdo CI. 1.7.0 laida patikrinta su Tailwind v4.3.3 ir 4,427 testais.
Kiekvieno puslapio CSS iš vieno kompiliatoriaus
Vieną kartą sukompiliuokite temą naudodami tw::compile(), tada kiekvienam puslapiui iškvieskite generateExact(). Kiekvienas iškvietimas grąžina tai, ką sukurtų šaltas to puslapio tw::generate(), neanalizuodamas temos iš naujo.
Palyginimas su
Tailwind Labs siūlo savus būdus kurti Tailwind CSS. Štai kuo skiriasi TailwindPHP.
| Įrankis | Stipriosios pusės | Skirtumas nuo TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Stipriosios pusėsSavas Tailwind komandinės eilutės įrankis, įdiegiamas iš npm. Jis ieško klasių pavadinimų jūsų HTML failuose, komponentuose ir šablonuose, tada įrašo atitinkančius stilius į statinį CSS failą. | Skirtumas nuo TailwindPHPTailwindPHP kompiliuoja PHP aplinkoje, nereikia įdiegti nei Node.js, nei npm. Jis naudoja fiksuotą Tailwind laidą (v4.3.3 sistemoje 1.7.0), o jo paties etaloninis testas rodo, kad TypeScript originalas žemo lygio operacijas atlieka greičiau. |
| Tailwind atskiras CLI | Stipriosios pusėsTailwind CLI veikia kaip atskira vykdomoji programa projektams, kurie nori ją naudoti neįdiegę Node.js. | Skirtumas nuo TailwindPHPVykdomoji programa yra atskiras dvejetainis failas, paleidžiamas kaip kūrimo proceso etapas. TailwindPHP yra Composer paketas, kurį iškviečia jūsų PHP kodas, todėl jis taip pat gali generuoti CSS užklausos metu iš duomenų bazės turinio ar šablono kintamųjų. |
| Tailwind Play CDN | Stipriosios pusėsScenarijaus žyma, kuri naršyklėje paleidžia Tailwind ir leidžia išbandyti jį be kūrimo proceso. Tailwind dokumentacijoje nurodoma, kad jis skirtas kūrimui, o ne produkcinei aplinkai. | Skirtumas nuo TailwindPHPTailwindPHP taip pat nereikia kūrimo proceso, tačiau jis serveryje sugeneruoja CSS naudodamas PHP ir grąžina jį kaip eilutę, pavyzdžiui, kad būtų galima įrašyti į stilių lentelę. |
Šaltiniai, pažymėta
Klausimai ir atsakymai
Trumpi atsakymai iš TailwindPHP dokumentacijos.
1.7.0 laida naudoja Tailwind CSS v4.3.3. Jos testų rinkiniai buvo iš naujo išgauti pagal šią versiją.
Rezultatas tikrinamas pagal atvejus, išgautus iš pačios Tailwind testų failų. 1.7.0 pakeitimų žurnale nurodyti keli serializavimo skirtumai, pavyzdžiui, .p-0 išsaugo padding: 0px, o nuorodinis CLI pateikia padding: 0.
Ne. Papildiniai yra PHP: tipografijos ir formų papildiniai perkelti, o savus galite rašyti pagal PHP papildinių API ir užregistruoti naudodami registerPlugin(). Neregistruotas @plugin pavadinimas sukelia klaidą.
Projekto našumo bandyme su PHP 8.4.5 ir Apple M1 viso puslapio generavimas truko maždaug 14 ms vienam puslapiui. Kartojant tą pačią įvestį, failų podėlis praleidžia kompiliavimą, o ilgai veikiantis kompiliatorius su generateExact() pakartotinai naudoja išanalizuotą temą.
Ne. IntelliSense, automatinis užbaigimas, klasių rūšiavimas ir šaltinio žemėlapiai sąmoningai neįtraukti. TailwindPHP generuoja tik CSS.
PHP 8.2 ar naujesnė versija su ctype ir mbstring plėtiniais. composer.json nurodo PHP versiją, o CI testų rinkinį vykdo su PHP 8.2, 8.3 ir 8.4.
Įdiekite paketą naudodami Composer ir vadovaudamiesi pradžios vadovu sugeneruokite pirmąją stilių lentelę iš PHP.