TailwindPHP
Пренасяне на TailwindCSS 4.x към PHP. Генерира помощни CSS Tailwind в PHP, без Node.js и без процес на компилиране. Включва cn(), tailwind-merge, CVA, приставките за типография и формуляри и CLI.
composer require tailwindphp/tailwindphpПоследна версия 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'На практика
Подайте маркировка и незадължителен вход CSS с едно извикване на PHP и получете стилова таблица.
Генерирайте CSS от PHP
tw::generate() сканира маркировката за имена на класове и връща само CSS, от които тези класове се нуждаят. Вторият аргумент приема вход CSS, така че цвят, дефиниран в @theme, става помощен клас.
cn() изгражда низове от класове и разрешава конфликтите Tailwind, така че последният конфликтен помощен клас е с предимство.
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'Чисто PHP
Без Node.js и без процес на компилиране. Работи с PHP 8.2+ и стандартните разширения mbstring и ctype. Изпълнете composer require и започнете.
Следи TailwindCSS v4.3.3
Пренасяне на Tailwind v4.3.3 със същите помощни класове, варианти и директиви. Известните разлики спрямо Tailwind са описани.
4,400+ теста
Резултатът се проверява спрямо собствените тестови набори на TailwindCSS, извлечени от изходния код на TypeScript и изпълнявани отново при всяко качване.
Всички помощни класове и варианти
Пълният набор от помощни класове и всички варианти: hover, focus, адаптивен дизайн, тъмен режим, контейнерни заявки и произволни стойности.
Директиви на CSS
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin и @source се обработват и разрешават в PHP.
Генериране по време на изпълнение
Генерирайте помощни CSS динамично от HTML, съдържание от база данни или променливи на шаблон. Не е необходим процес на компилиране.
Всичко необходимо е включено
cn(), merge(), join() и variants(): clsx, tailwind-merge и пренасяне на CVA към PHP — без допълнителни пакети.
Плъгини
@tailwindcss/typography и @tailwindcss/forms са пренесени към PHP, плюс приставка PHP API за ваши собствени помощни класове и компоненти.
CLI
bin/tailwindphp създава стилова таблица от входен файл CSS с опциите -i, -o, --watch и --minify.
Разгледайте темата
Четете суровите и изчислените стойности на свойства, цветове, точки на прекъсване и отстояния за всеки клас директно от PHP.
Кеш и минимизатор
Вграденият минимизатор CSS и файловият кеш с TTL ускоряват повторните компилации и намаляват размера на резултата.
Фреймуъркове WordPress и PHP
Разпространявайте теми и приставки, базирани на Tailwind, без Node.js в стека. TailwindPHP е само една зависимост Composer.
Защо TailwindPHP
Една среда за изпълнение в продукция
Проект PHP, който използва Tailwind, обикновено добавя и Node.js, инсталиране на npm и стъпка за компилиране в CI и Docker. Вместо това TailwindPHP компилира CSS в процеса PHP.
CSS за съдържание, известно по време на изпълнение
Маркировката от база данни, потребителски вход или променлива на шаблон може директно да се подаде на tw::generate(), което връща само необходимите на класовете CSS.
Проверено спрямо фиксирана версия на Tailwind
Тестовите случаи се извличат от фиксираната в хранилището версия на изходния код на Tailwind и се изпълняват спрямо резултата PHP, така че отклоненията провалят CI. Версия 1.7.0 беше проверена спрямо Tailwind v4.3.3 с 4,427 теста.
CSS за всяка страница от един компилатор
Компилирайте темата веднъж с tw::compile(), а след това извиквайте generateExact() за всяка страница. Всяко извикване връща резултата, който би дал студен tw::generate() на тази страница, без повторно анализиране на темата.
Сравнение с
Tailwind Labs предлага собствени начини за създаване на Tailwind CSS. Ето с какво се отличава TailwindPHP.
| Инструмент | Подходящ за | Разлики спрямо TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Подходящ заСобственият инструмент за команден ред на Tailwind, инсталиран от npm. Той сканира вашите файлове HTML, компоненти и шаблони за имена на класове и записва съответстващите стилове в статичен файл CSS. | Разлики спрямо TailwindPHPTailwindPHP се компилира в PHP без инсталиране на Node.js или npm. Използва фиксирана версия Tailwind (v4.3.3 в 1.7.0), а собственият му бенчмарк показва, че оригиналът TypeScript изпълнява нискоуровневите операции по-бързо. |
| Самостоятелен Tailwind CLI | Подходящ заTailwind CLI като самостоятелен изпълним файл за проекти, които искат да го използват без инсталиране на Node.js. | Разлики спрямо TailwindPHPИзпълнимият файл е отделен двоичен файл, който се стартира като стъпка от процеса на компилиране. TailwindPHP е пакет Composer, който кодът на вашето PHP извиква, така че може да генерира и CSS при заявка от съдържание в база данни или променливи на шаблон. |
| Tailwind Play CDN | Подходящ заТаг script, който стартира Tailwind в браузъра, за да го изпробвате без стъпка на компилиране. Документацията на Tailwind посочва, че е предназначен за разработка, а не за продукционна среда. | Разлики спрямо TailwindPHPTailwindPHP също не изисква стъпка на компилиране, но генерира CSS в PHP на сървъра и го връща като низ, например за запис в таблица със стилове. |
Източници, отметнато
Въпроси и отговори
Кратки отговори от документацията на TailwindPHP.
Версията 1.7.0 използва Tailwind CSS v4.3.3. Тестовите пакети бяха извлечени отново спрямо тази версия.
Резултатът се тества със случаи, извлечени от собствените тестови файлове на Tailwind. Дневникът на промените на 1.7.0 описва няколко разлики в сериализацията. Например .p-0 запазва padding: 0px, докато референтната CLI генерира padding: 0.
Не. Приставките са PHP: приставките за типография и формуляри са пренесени, а вие можете да напишете свои спрямо PHP приставка API и да ги регистрирате с registerPlugin(). Нерегистрирано име на @plugin води до грешка.
В бенчмарка на проекта с PHP 8.4.5 и Apple M1 генерирането на цяла страница отнема около 14 ms. При повтарящи се входни данни файловият кеш пропуска компилацията, а дълготрайният компилатор с generateExact() използва повторно анализираната тема.
Не. IntelliSense, автоматичното довършване, сортирането на класове и картите на източника умишлено са изключени. TailwindPHP генерира само CSS.
PHP 8.2 или по-нова версия с разширенията ctype и mbstring. composer.json декларира версията PHP, а CI изпълнява тестовия пакет на PHP 8.2, 8.3 и 8.4.
Инсталирайте пакета с Composer и следвайте ръководството за начало, за да генерирате първата си таблица със стилове от PHP.