Към съдържанието

TailwindPHP

TailwindPHP е пряк порт 1:1 на TailwindCSS 4.x към PHP. Той анализира вашия CSS, сканира маркировката за имена на класове и генерира помощния CSS, който TailwindCSS v4.3.3 създава — изцяло в PHP, без Node.js и без стъпка за компилация.

  • Само PHP — предоставя се като пакет Composer и работи на PHP 8.2+ със стандартните разширения ctype и mbstring. Без exec, FFI или инструменти за компилация на машинен код.
  • Проверен спрямо TailwindCSS — помощните класове, вариантите, директивите и функциите CSS съответстват на TailwindCSS v4.3.3. Резултатът се проверява спрямо собствените тестови набори на Tailwind, извлечени от изходния код на TypeScript и изпълнявани отново при всяко изпращане на промени (4,400+ теста). Известните разлики (няколко подробности при сериализацията без ефект върху каскадата, както и отворени проблеми) са посочени в Съвместимост и надстройване.
  • Пълният набор от функции — пълният набор помощни класове TailwindCSS v4.3.3 (включително container, помощните класове за ленти за превъртане, zoom-* и tab-*), всеки вариант (при посочване, фокус, адаптивен дизайн, тъмен режим, заявки за контейнери, произволни стойности) и всички директиви: @import, @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin и @source.
  • Включва необходимите библиотеки — cn(), merge(), join() и variants() включват портове PHP на clsx, tailwind-merge и CVA, така че придружаващите библиотеки, които използва всеки проект Tailwind, вече са включени.
  • Плъгини — @tailwindcss/typography и @tailwindcss/forms са пренесени изцяло, а PHP плъгин API ви позволява да създавате свои.

Защо съществува TailwindPHP

TailwindCSS е написан на TypeScript и работи на Node.js. Това е задължително изискване за всеки проект PHP, който иска да използва Tailwind: втора среда за изпълнение, инсталация на npm и стъпка за компилация в CI и Docker. За много приложения PHP това създава усложнения, които предпочитат да избегнат.

TailwindPHP премахва тази пречка. Вашият код PHP се компилира директно в Tailwind CSS, като използва само стандартната библиотека. Така стават възможни няколко неща, които са трудни или невъзможни с инструментариума JavaScript:

  • Фреймуърци WordPress и PHP — създавайте теми и плъгини с Tailwind, без потребителите да инсталират Node.js или да стартират компилация. Просто composer require и готово. Вижте TailwindWP, примерен плъгин WordPress, който генерира CSS за редактора на блокове с TailwindPHP.
  • CSS по време на изпълнение — генерирайте помощни CSS в движение от потребителски вход, съдържание от база данни или променливи на шаблона, вместо при компилация.
  • По-лесно внедряване — без Node.js в продукционна среда, без компилация в CI и без npm във вашия образ на Docker.

Същата идея, която scssphp пренесе в SCSS — пълният компилатор в PHP.

Какво прави

  • Компилира набора помощни класове TailwindCSS v4.3.3, вариантите и произволните стойности от имената на класове, открити в съдържанието ви.
  • Обработва всички директиви: @import (включително виртуални модули като tailwindcss и tailwindcss/utilities, както и импорти reference), @theme, @apply, @utility, @variant, @custom-variant, @layer, @plugin и @source.
  • Реализира функциите CSS на Tailwind — theme(), --theme(), --spacing() и --alpha() — както и преобразуване color-mix() → oklab() и трансформациите CSS, които TailwindCSS делегира на LightningCSS.
  • Зарежда @import от файловата система с вложени импорти, премахване на дубликати и персонализирани резолвери или от вградени низове CSS.
  • Включва Preflight (базовото нулиране на Tailwind), поддръжка на префикси, резервни стойности @property, добавяне на префикси на доставчици и изнасяне на keyframes на най-горно ниво.
  • Включва cn(), merge(), join() и variants()/compose() за конструиране на имена на класове, разрешаване на конфликти и варианти на компоненти.
  • Включва плъгините за типография и формуляри, както и API на плъгин addUtilities (matchUtilities, addComponents, addVariant, theme, …) за персонализирани плъгини.
  • Предоставя CLI (bin/tailwindphp) със същите опции за компилация @tailwindcss/cli, както и кеширане на изхода от файлове, постоянен кеш на състоянието на компилатора и минификатор CSS за продукционна среда.

Какво не е

TailwindPHP е компилатор CSS, а не набор от инструменти за редактор. Умишлено пропуска компонентите от екосистемата Tailwind, насочени към IDE — IntelliSense, автоматично довършване, сортиране на класове и карти на изходния код — защото това са функции на редактора, а не част от генерирането на CSS. Всичко, което генерира CSS, е включено; всичко, което захранва редактора ви, не е.

Откъде да започнете

  • Първи стъпки — инсталирайте пакета и генерирайте първата си стилова таблица.
  • Употреба — сканирайте съдържанието, персонализирайте темата и използвайте директивите на Tailwind.
  • Помощни класове — cn(), merge(), join() и variants().
  • Плъгини — типография, формуляри и създаване на собствени плъгини.
  • API — всички директиви tw и екземплярът TailwindCompiler.
  • CLI — bin/tailwindphp за компилации от файлове и режим на наблюдение.
  • Разширени теми — архитектура, кеширане, производителност и бележки за съвместимостта.