TailwindPHP
Port TailwindCSS 4.x do PHP. Generuj CSS dla klas Tailwind w PHP bez Node.js i etapu budowania. Zawiera cn(), tailwind-merge, CVA, wtyczki typografii i formularzy oraz CLI.
composer require tailwindphp/tailwindphpNajnowsze wydanie 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'W praktyce
Przekaż znaczniki i opcjonalne wejściowe CSS w jednym wywołaniu PHP, aby otrzymać arkusz stylów.
Generuj CSS z PHP
tw::generate() skanuje znaczniki w poszukiwaniu nazw klas i zwraca tylko CSS potrzebny tym klasom. Drugi argument przyjmuje wejściowy CSS, więc kolor zdefiniowany w @theme staje się klasą pomocniczą.
cn() tworzy ciągi klas i rozwiązuje konflikty Tailwind, dzięki czemu wygrywa ostatnia kolidująca klasa pomocnicza.
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'Czysty PHP
Bez Node.js i etapu budowania. Działa z PHP 8.2+ ze standardowymi rozszerzeniami mbstring i ctype. Wystarczy composer require i gotowe.
Zgodność z TailwindCSS v4.3.3
Port Tailwind v4.3.3 z tymi samymi klasami pomocniczymi, wariantami i dyrektywami. Udokumentowano znane różnice względem Tailwind.
Ponad 4 400 testów
Wynik jest weryfikowany za pomocą własnych zestawów testów TailwindCSS, wyodrębnionych z jego kodu źródłowego w TypeScript i uruchamianych po każdym wypchnięciu zmian.
Każda klasa pomocnicza i wariant
Pełny zestaw klas pomocniczych i wszystkie warianty: hover, focus, responsywność, tryb ciemny, zapytania kontenerowe i dowolne wartości.
Dyrektywy CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin i @source są analizowane i rozpoznawane w PHP.
Generowanie w czasie działania
Generuj CSS dla klas pomocniczych na bieżąco na podstawie HTML, treści bazy danych lub zmiennych szablonu. Bez etapu budowania.
Wszystko w zestawie
cn(), merge(), join() i variants(): clsx, tailwind-merge i CVA przeniesione do PHP, bez dodatkowych pakietów.
Wtyczki
@tailwindcss/typography i @tailwindcss/forms przeniesione do PHP, a także API wtyczek PHP do tworzenia własnych klas pomocniczych i komponentów.
CLI
bin/tailwindphp tworzy arkusz stylów z wejściowego pliku CSS przy użyciu opcji -i, -o, --watch i --minify.
Sprawdzaj motyw
Odczytuj surowe i obliczone wartości właściwości, kolory, punkty przerwania i odstępy dla dowolnej klasy bezpośrednio z PHP.
Pamięć podręczna i minifikator
Wbudowany minifikator CSS i pamięć podręczna plików z TTL przyspieszają kolejne kompilacje i ograniczają rozmiar wyniku.
Frameworki WordPress i PHP
Twórz motywy i wtyczki oparte na Tailwind bez Node.js w stosie. TailwindPHP to pojedyncza zależność Composer.
Dlaczego TailwindPHP
Jedno środowisko uruchomieniowe na produkcji
Projekt PHP korzystający z Tailwind zwykle wymaga także Node.js, instalacji npm oraz etapu budowania w CI i Docker. TailwindPHP kompiluje CSS wewnątrz procesu PHP.
CSS dla treści znanej w czasie działania
Znaczniki z bazy danych, danych użytkownika lub zmiennej szablonu można przekazać bezpośrednio do tw::generate(), które zwraca tylko CSS potrzebne użytym klasom.
Zweryfikowano względem przypiętej wersji Tailwind
Przypadki testowe są wyodrębniane ze źródła Tailwind przypiętego w repozytorium i uruchamiane względem wyniku PHP, więc rozbieżności powodują niepowodzenie CI. Wersję 1.7.0 zweryfikowano względem Tailwind v4.3.3 za pomocą 4 427 testów.
CSS dla każdej strony z jednego kompilatora
Skompiluj motyw raz za pomocą tw::compile(), a następnie wywołuj generateExact() dla każdej strony. Każde wywołanie zwraca wynik, jaki dałaby świeża kompilacja tw::generate() tej strony, bez ponownego analizowania motywu.
W porównaniu z
Tailwind Labs udostępnia własne sposoby budowania Tailwind CSS. Oto czym różni się TailwindPHP.
| Narzędzie | Dobre w | Różnica w porównaniu z TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Dobre wWłasne narzędzie wiersza poleceń Tailwind, instalowane z npm. Skanuje pliki HTML, komponenty i szablony w poszukiwaniu nazw klas, a pasujące style zapisuje w statycznym pliku CSS. | Różnica w porównaniu z TailwindPHPTailwindPHP kompiluje wewnątrz PHP bez instalacji Node.js ani npm. Obsługuje przypięte wydanie Tailwind (v4.3.3 w 1.7.0), a jego własny test wydajności pokazuje, że oryginalne TypeScript wykonuje operacje niskiego poziomu szybciej. |
| Tailwind samodzielny CLI | Dobre wTailwind CLI jako samodzielny plik wykonywalny, dla projektów, które chcą go używać bez instalowania Node.js. | Różnica w porównaniu z TailwindPHPPlik wykonywalny to osobny program uruchamiany jako etap budowania. TailwindPHP jest pakietem Composer wywoływanym przez kod PHP, więc może też generować CSS na żądanie na podstawie treści bazy danych lub zmiennych szablonu. |
| Tailwind Play CDN | Dobre wZnacznik skryptu uruchamiający Tailwind w przeglądarce, aby można było wypróbować go bez etapu budowania. Dokumentacja Tailwind podaje, że jest przeznaczony do programowania, a nie do użycia na produkcji. | Różnica w porównaniu z TailwindPHPTailwindPHP również nie wymaga etapu budowania, ale generuje CSS na serwerze w PHP i zwraca je jako ciąg, na przykład do zapisania w arkuszu stylów. |
Pytania i odpowiedzi
Krótkie odpowiedzi z dokumentacji TailwindPHP.
Wydanie 1.7.0 obsługuje Tailwind CSS v4.3.3. Zestawy testów zostały ponownie wyodrębnione dla tej wersji.
Wynik jest testowany na przypadkach wyodrębnionych z własnych plików testowych Tailwind. Dziennik zmian 1.7.0 odnotowuje kilka różnic w serializacji; na przykład .p-0 zachowuje padding: 0px, podczas gdy referencyjne CLI emituje padding: 0.
Nie. Wtyczki są PHP: przeniesiono wtyczki typograficzne i formularzy, a własne można napisać w oparciu o PHP API i zarejestrować za pomocą registerPlugin(). Niezarejestrowana nazwa @plugin powoduje błąd.
W teście wydajności projektu na PHP 8.4.5 i Apple M1 generowanie całej strony trwało około 14 ms. W przypadku powtarzanych danych pamięć podręczna plików pomija kompilację, a długotrwała instancja kompilatora z generateExact() ponownie wykorzystuje przeanalizowany motyw.
Nie. IntelliSense, autouzupełnianie, sortowanie klas i mapy źródłowe celowo pominięto. TailwindPHP generuje wyłącznie CSS.
PHP 8.2 lub nowsza z rozszerzeniami ctype i mbstring. composer.json deklaruje wersję PHP, a CI uruchamia zestaw testów na PHP 8.2, 8.3 i 8.4.
Zainstaluj pakiet za pomocą Composer i skorzystaj z przewodnika dla początkujących, aby wygenerować pierwszy arkusz stylów z PHP.