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

API

Цялата статична повърхност е в един клас: TailwindPHP\tw (псевдоним на вътрешния клас Tailwind). Всеки метод може да се извиква статично, а методите за инспекция (properties, computedProperties, value, computedValue) приемат форматите на входа, описани в края на тази страница.

При повтаряща се работа със същата конфигурация на CSS извикайте tw::compile() веднъж и използвайте повторно върнатата TailwindCompiler.

PHP
use TailwindPHP\tw;

$css = tw::generate('<div class="flex items-center p-4 bg-blue-500">');

tw::generate()

PHP
public static function generate(string|array $input, string $css = '@import "tailwindcss";'): string

Анализира съдържанието, извлича кандидати за класове и връща генерирания CSS. Стойността по подразбиране за $css е @import "tailwindcss";, която включва темата, preflight и utilities. Връща string.

PHP
use TailwindPHP\tw;

// String input
$css = tw::generate('<div class="flex p-4">');

// String with custom CSS
$css = tw::generate('<div class="flex bg-brand">', '@import "tailwindcss"; @theme { --color-brand: #3b82f6; }');

// Array input with options
$css = tw::generate([
    'content' => '<div class="flex p-4">',
    'css' => '@import "tailwindcss";',
    'minify' => true,
]);

Формата с масив приема следните ключове:

Ключ Тип Предназначение
content string Съдържание за сканиране за кандидати за класове (задължително)
css string Входен CSS с директиви Tailwind (по подразбиране @import "tailwindcss";)
minify bool Минифициране на изхода (по подразбиране false)
importPaths string | array | callable | null Зареждане на CSS от файловата система с пълно разрешаване на @import — вижте Импортиране на CSS
cache bool | string Активиране на кеширане на файлове — вижте Кеширане
cacheTtl int Време на живот на кеша в секунди

tw::compile()

PHP
public static function compile(string $css = '@import "tailwindcss";', array $options = []): TailwindCompiler

Създава повторно използваем TailwindCompiler, обвързан с посочения CSS. Анализирането и изграждането на системата за дизайн се извършват веднъж, затова това е ефективният избор при генериране на CSS за много различни низове със съдържание. Използвайте generate(), за да натрупвате един стилов лист при всяко извикване, или generateExact() за независим изход за всяка страница. Връща TailwindCompiler.

PHP
use TailwindPHP\tw;

// Default Tailwind
$compiler = tw::compile();

// Custom CSS
$compiler = tw::compile('@import "tailwindcss"; @theme { --color-brand: #3b82f6; }');

$css = $compiler->generate('<div class="flex p-4 bg-brand">');

Масивът $options приема:

Опция Тип Предназначение
stateCacheFile string Път до файл PHP, който съхранява състоянието при създаване на компилатора между заявките и процесите — вижте Кеш на състоянието на компилатора
polyfills int Кои резервни стойности да се изведат, като битова маска от TailwindPHP\POLYFILL_AT_PROPERTY (стойностите @layer properties по подразбиране за променливите @property) и TailwindPHP\POLYFILL_COLOR_MIX (статични резервни цветове преди color-mix()). По подразбиране POLYFILL_ALL; POLYFILL_NONE изключва и двете
importSearchPaths array<string> Директории за търсене при разрешаване на @import от файловата система
PHP
use TailwindPHP\tw;
use const TailwindPHP\POLYFILL_NONE;

// Cache construction state on disk, reused by later requests
$compiler = tw::compile('@import "tailwindcss";', [
    'stateCacheFile' => __DIR__ . '/cache/tailwind-state.php',
]);

// Plain output without fallbacks, e.g. for CSS modules
$compiler = tw::compile('@import "tailwindcss/utilities.css";', [
    'polyfills' => POLYFILL_NONE,
]);
$compiler->generate('<div class="bg-red-500/50">');
// .bg-red-500\/50 { background-color: color-mix(in oklab, var(--color-red-500) 50%, transparent); }
// (with the default, a `#fb2c3680` fallback comes first and color-mix() moves into @supports)

Вижте Методи на инстанцията TailwindCompiler за пълния набор от методи на инстанцията.

tw::properties()

PHP
public static function properties(string|array $input, string $css = '@import "tailwindcss";'): array

Връща необработените свойства на CSS за клас, като променливите CSS остават неразрешени. Връща array<string, string> (име на свойство → стойност).

PHP
use TailwindPHP\tw;

tw::properties('p-4');
// ['padding' => 'calc(var(--spacing) * 4)']

tw::properties(['flex', 'items-center', 'p-4']);
// ['display' => 'flex', 'align-items' => 'center', 'padding' => 'calc(var(--spacing) * 4)']

tw::computedProperties()

PHP
public static function computedProperties(string|array $input, string $css = '@import "tailwindcss";'): array

Подобно на properties(), но с всяка променлива CSS, разрешена до конкретна стойност. Връща array<string, string>.

PHP
use TailwindPHP\tw;

tw::computedProperties('p-4');
// ['padding' => '1rem']

tw::computedProperties('text-blue-500');
// ['color' => 'oklch(62.3% .214 259.815)']

tw::computedProperties(['flex', 'items-center', 'gap-4']);
// ['display' => 'flex', 'align-items' => 'center', 'gap' => '1rem']

tw::value()

PHP
public static function value(string|array $input, string $css = '@import "tailwindcss";'): ?string

Връща необработената стойност за един utility клас. Връща ?string — null, ако utility не е намерен.

PHP
use TailwindPHP\tw;

tw::value('p-4');           // 'calc(var(--spacing) * 4)'
tw::value('text-blue-500'); // 'var(--color-blue-500)'

tw::computedValue()

PHP
public static function computedValue(string|array $input, string $css = '@import "tailwindcss";'): ?string

Връща разрешената стойност за един utility клас. Връща ?string — null, ако utility не е намерен.

PHP
use TailwindPHP\tw;

tw::computedValue('p-4');           // '1rem'
tw::computedValue('text-blue-500'); // 'oklch(62.3% .214 259.815)'
tw::computedValue('gap-4');         // '1rem'

tw::extractCandidates()

PHP
public static function extractCandidates(string $html): array

Извлича имената на класове Tailwind от съдържанието (чете атрибутите class и className). Връща array<string>.

PHP
use TailwindPHP\tw;

tw::extractCandidates('<div class="flex p-4" className="bg-blue-500">');
// ['flex', 'p-4', 'bg-blue-500']

tw::extractCandidatesFromStrings()

PHP
public static function extractCandidatesFromStrings(string $source): array

Извлича кандидати за имена на класове от всеки низ в единични или двойни кавички в изходния код, за шаблони, които изграждат списъци с класове в променливи вместо в атрибутите class. Всеки низ се разделя по интервали и се запазва всеки токен, който прилича на име на клас. Връща array<string>.

PHP
use TailwindPHP\tw;

$classes = tw::extractCandidatesFromStrings('<?php $wrap = \'p-4 sm:flex\'; $title = "hello world"; ?>');
// ['p-4', 'sm:flex', 'hello', 'world']

$css = tw::compile()->css($classes);

Обикновените думи също преминават проверката (hello, world по-горе); те не компилират нищо, освен ако не са имена на utilities. Подайте резултата на css(), тъй като generate() чете само атрибутите class.

tw::cssMap()

PHP
public static function cssMap(string $css = '@import "tailwindcss";'): array

Изгражда обратна карта от декларации CSS към utility класове, полезна за преобразуване на съществуващ CSS в класове Tailwind. Ключовете са низове "property: value" с разрешени променливи (utilities с няколко свойства получават и ключ "prop: value; prop: value"), а стойностите са имена на класове. Връща array<string, string>.

PHP
use TailwindPHP\tw;

$map = tw::cssMap();
$map['display: flex'];       // 'flex'
$map['padding: 1rem'];       // 'p-4'
$map['text-align: center'];  // 'text-center'
$map['color: #fff'];         // 'text-white'

Картата обхваща фиксиран списък с често използвани utilities (display, position, flexbox, типография, стъпки за отстъпи и размери, рамки, черен, бял и прозрачен цвят и подобни), а не всички utilities или цветове от темата. Аргументът $css променя разрешените стойности на тези utilities, но потребителски токени на темата (като --color-brand) не добавят записи.

tw::minify()

PHP
public static function minify(string $css): string

Минифицира произволен низ CSS: премахва коментари, свива интервалите, съкращава шестнадесетичните цветове (#ffffff → #fff), премахва единиците от нулевите стойности (0px → 0) и още. Връща string.

За CSS, генериран от самия TailwindPHP, предпочитайте опцията minify (tw::generate(['minify' => true])) или параметъра $minify в методите на компилатора. Този подход минифицира при сериализация, което е по-бързо и запазва селекторите :not() на потомците, които проходът през низ свива.

PHP
use TailwindPHP\tw;

$css = tw::generate('<div class="flex p-4">');
$minified = tw::minify($css);

Вижте Кеширане и минифициране за пълния набор от оптимизации.

tw::clearCache()

PHP
public static function clearCache(string|bool|null $cache = true): int

Изтрива кешираните файлове CSS. Подайте true (или пропуснете) за директорията на кеша по подразбиране, или низ с път за потребителска директория. Връща int — броя изтрити файлове.

PHP
use TailwindPHP\tw;

tw::clearCache();                  // default directory
tw::clearCache('/path/to/cache');  // custom directory

Налична е и самостоятелна функция TailwindPHP\clearCache().

tw::colors()

PHP
public static function colors(string $css = '@import "tailwindcss";'): array

Връща всяка стойност за цвят от темата. Връща array<string, string> (име на цвят → изчислена стойност).

PHP
use TailwindPHP\tw;

tw::colors();
// ['red-500' => 'oklch(63.7% .237 25.331)', 'blue-500' => 'oklch(62.3% .214 259.815)', ...]

// With a custom theme
tw::colors('@import "tailwindcss"; @theme { --color-brand: #3b82f6; }');
// [..., 'brand' => '#3b82f6']

tw::breakpoints()

PHP
public static function breakpoints(string $css = '@import "tailwindcss";'): array

Връща всяка стойност за точка на прекъсване от темата. Връща array<string, string> (име на точка на прекъсване → стойност).

PHP
use TailwindPHP\tw;

tw::breakpoints();
// ['sm' => '40rem', 'md' => '48rem', 'lg' => '64rem', 'xl' => '80rem', '2xl' => '96rem']

tw::breakpoints('@import "tailwindcss"; @theme { --breakpoint-xs: 20rem; }');
// ['sm' => '40rem', ..., '2xl' => '96rem', 'xs' => '20rem']

tw::spacing()

PHP
public static function spacing(string $css = '@import "tailwindcss";'): array

Връща потребителските стойности за отстъпи от темата. Връща array<string, string> (име на отстъп → стойност).

PHP
use TailwindPHP\tw;

// TailwindCSS 4 uses a single --spacing base value rather than a --spacing-* namespace.
// This returns any custom --spacing-* values defined in the theme.
tw::spacing('@import "tailwindcss"; @theme { --spacing-huge: 10rem; }');
// ['huge' => '10rem']

Формати на входа

Методите за инспекция (generate, properties, computedProperties, value, computedValue) приемат три форми на вход:

Формат Пример
Само низ tw::generate('<div class="flex">')
Низ + низ CSS tw::generate('<div class="flex">', '@import "tailwindcss"; @theme { ... }')
Масив с content (+ незадължителен css) tw::generate(['content' => '<div class="flex">', 'css' => '@import "tailwindcss";'])
PHP
use TailwindPHP\tw;

// Format 1: string only
tw::properties('p-4');

// Format 2: string + CSS
tw::properties('bg-brand', '@import "tailwindcss"; @theme { --color-brand: #3b82f6; }');

// Format 3: array
tw::properties(['content' => 'p-4', 'css' => '@import "tailwindcss";']);

Методи на инстанцията TailwindCompiler

Обектът, върнат от tw::compile(), предоставя същите методи за инспекция като статичния клас, обвързани с CSS, с който е компилиран. Използвайте го, за да избегнете повторно анализиране на темата при всяко извикване.

PHP
public function generate(string $content, bool $minify = false): string
public function css(array $candidates, bool $minify = false): string
public function generateExact(string $content, bool $minify = false): string
public function cssExact(array $candidates, bool $minify = false): string
public function extractCandidates(string $html): array
public function extractCandidatesFromStrings(string $source): array
public function properties(string|array $utilities): array
public function computedProperties(string|array $utilities): array
public function value(string $utility): ?string
public function computedValue(string $utility): ?string
public function minify(string $css): string
public function colors(): array
public function breakpoints(): array
public function spacing(): array
PHP
use TailwindPHP\tw;

$compiler = tw::compile('@import "tailwindcss"; @theme { --color-brand: #3b82f6; }');

$css        = $compiler->generate('<div class="flex p-4 bg-brand">');
$candidates = $compiler->extractCandidates('<div class="flex p-4 bg-brand">');

$compiler->properties('bg-brand');          // ['background-color' => 'var(--color-brand)']
$compiler->computedProperties('bg-brand');   // ['background-color' => '#3b82f6']
$compiler->value('bg-brand');                // 'var(--color-brand)'
$compiler->computedValue('bg-brand');        // '#3b82f6'

$minified = $compiler->minify($css);

$compiler->colors();        // all color values
$compiler->breakpoints();   // all breakpoint values
$compiler->spacing();       // custom spacing values

Натрупване и точно генериране

generate() и css() натрупват: всяко извикване добавя кандидатите си към нарастващия набор на компилатора и върнатият стилов лист обхваща всичко видяно досега. Това е подходящо за изграждане на един стилов лист в няколко шаблона.

generateExact() и cssExact() компилират точно зададеното съдържание или кандидати при всяко извикване, без пренасяне между извикванията, като същевременно използват повторно анализираната система за дизайн на компилатора. Изходът съвпада с този, който би произвел студен tw::generate() със същото съдържание. Това е най-бързият начин да изграждате CSS за всяка страница с един дълго живеещ компилатор:

PHP
use TailwindPHP\tw;

$compiler = tw::compile($themeCss);

foreach ($pages as $slug => $html) {
    $perPageCss[$slug] = $compiler->generateExact($html, true);
}

И четирите метода приемат незадължителен флаг $minify, който извежда минифициран CSS при сериализация, идентичен до байт с tw::generate(['minify' => true]) и по-икономичен от последващо минифициране на форматирания изход.

Разширени инспектори

За директна проверка на компилираното състояние:

PHP
public function getTheme(): Theme
public function getDesignSystem(): object
public function getCompiled(): array
PHP
$compiler->getTheme();        // Theme object with resolved values
$compiler->getDesignSystem(); // Design system: utilities, variants, etc.
$compiler->getCompiled();     // Raw compiled state array

Те връщат вътрешни структури; вижте Архитектура за тяхното съдържание.

Функции от по-ниско ниво

Класът tw обгръща набор от функции с пространства от имена в TailwindPHP. Те са полезни, когато ви е нужен необработеният резултат от компилацията, а не TailwindCompiler:

Функция Предназначение
compile(string $css, array $options = []): array Анализира и компилира CSS. Връща build (с натрупване) и замиканията buildExact, които приемат кандидати и незадължителен флаг $minify, както и sources, root, features и designSystem. Приема същите опции като tw::compile(), с изключение на stateCacheFile
StateCache\compileCssCached(string $css, string $cacheFile, array $options = []): array compile() с постоянния кеш на състоянието на компилатора
parseCssState(), finalizeCssState(), compileParsed() Двете части на анализа (сериализуемо състояние, след това замиканията, възстановени от него) и последната стъпка по сглобяване, която използва compileCssCached(). parseCss() и compileAst() остават еквивалентите за една стъпка
PHP
use function TailwindPHP\compile;

$compiled = compile('@import "tailwindcss";');
$css = $compiled['build'](['flex', 'p-4'], true); // minified

Кеширане

tw::generate() може да кешира компилирани CSS на диска, така че при идентични входни данни да се пропусне повторната компилация.

Опция Тип По подразбиране Предназначение
cache bool | string false true активира директорията по подразбиране; низ с път задава мястото за кеширане
cacheTtl int none Време на живот на кеша в секунди; изтеклите записи се компилират отново
PHP
use TailwindPHP\tw;

// Default directory: sys_get_temp_dir() . '/tailwindphp'
$css = tw::generate([
    'content' => '<div class="flex p-4">',
    'cache' => true,
]);

// Custom directory + TTL
$css = tw::generate([
    'content' => '<div class="flex p-4">',
    'cache' => '/path/to/cache',
    'cacheTtl' => 3600, // expire after 1 hour
]);

Ключът на кеша се извежда от съдържанието, конфигурацията на CSS и опцията minify, така че различните входни данни създават различни кеш файлове. Изчистете записите с tw::clearCache() или самостоятелната функция TailwindPHP\clearCache().

За по-подробно ръководство вижте Кеширане и минифициране.