API
Tüm statik arayüz tek bir sınıfta bulunur: TailwindPHP\tw (dahili Tailwind sınıfının diğer adı). Her yöntem statik olarak çağrılabilir ve inceleme yöntemlerinin tümü (properties, computedProperties, value, computedValue) bu sayfanın sonunda açıklanan girdi biçimlerini kabul eder.
Aynı CSS yapılandırmasıyla tekrarlanan işler için tw::compile() işlevini bir kez çağırın ve döndürülen TailwindCompiler değerini yeniden kullanın.
use TailwindPHP\tw;
$css = tw::generate('<div class="flex items-center p-4 bg-blue-500">');
tw::generate()
public static function generate(string|array $input, string $css = '@import "tailwindcss";'): string
İçeriği ayrıştırır, sınıf adaylarını çıkarır ve oluşturulan CSS değerini döndürür. Varsayılan $css, tema, preflight ve yardımcı programları içeren @import "tailwindcss"; değeridir. Döndürür string.
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,
]);
Dizi biçimi şu anahtarları kabul eder:
| Anahtar | Tür | Amaç |
|---|---|---|
content |
string |
Sınıf adaylarının taranacağı içerik (gerekli) |
css |
string |
Tailwind yönergelerini içeren girdi CSS (varsayılan @import "tailwindcss";) |
minify |
bool |
Çıktıyı küçült (varsayılan false) |
importPaths |
string | array | callable | null |
Tam @import çözümlemesiyle dosya sisteminden CSS yükle — bkz. CSS içe aktarma |
cache |
bool | string |
Dosya önbelleğini etkinleştir — bkz. Önbelleğe alma |
cacheTtl |
int |
Önbelleğin saniye cinsinden ömrü |
tw::compile()
public static function compile(string $css = '@import "tailwindcss";', array $options = []): TailwindCompiler
Verilen CSS öğesine bağlı, yeniden kullanılabilir bir TailwindCompiler oluşturur. Ayrıştırma ve tasarım sistemi oluşturma bir kez gerçekleşir; bu nedenle çok sayıda farklı içerik dizesi için CSS üretirken verimli bir seçenektir. Çağrılar boyunca tek bir stil sayfasını biriktirmek için generate() kullanın veya bağımsız sayfa çıktıları için generateExact() kullanın. Döndürür TailwindCompiler.
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 dizisi şunları kabul eder:
| Seçenek | Tür | Amaç |
|---|---|---|
stateCacheFile |
string |
Derleyicinin kurulum durumunu istekler ve süreçler arasında saklayan PHP dosyasının yolu; bkz. Derleyici durum önbelleği |
polyfills |
int |
Üretilecek yedeklerin bit maskesi: TailwindPHP\POLYFILL_AT_PROPERTY (@property değişkenleri için @layer properties varsayılanları) ve TailwindPHP\POLYFILL_COLOR_MIX (color-mix() öncesinde statik renk yedekleri). Varsayılan POLYFILL_ALL; POLYFILL_NONE ikisini de kapatır |
importSearchPaths |
array<string> |
Dosya sistemindeki @import çözümlemesinde aranacak dizinler |
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)
Tüm örnek yöntemlerini görmek için TailwindCompiler örnek yöntemleri bölümüne bakın.
tw::properties()
public static function properties(string|array $input, string $css = '@import "tailwindcss";'): array
Bir sınıf için CSS özelliklerinin ham değerlerini döndürür; CSS değişkenleri çözümlenmeden kalır. Döndürür array<string, string> (özellik adı → değer).
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()
public static function computedProperties(string|array $input, string $css = '@import "tailwindcss";'): array
properties() gibi, ancak her CSS değişkeni somut bir değere çözümlenir. Döndürür array<string, string>.
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()
public static function value(string|array $input, string $css = '@import "tailwindcss";'): ?string
Tek bir yardımcı sınıfın ham değerini döndürür. Döndürür ?string — yardımcı bulunamazsa null.
use TailwindPHP\tw;
tw::value('p-4'); // 'calc(var(--spacing) * 4)'
tw::value('text-blue-500'); // 'var(--color-blue-500)'
tw::computedValue()
public static function computedValue(string|array $input, string $css = '@import "tailwindcss";'): ?string
Tek bir yardımcı sınıfın çözümlenmiş değerini döndürür. Döndürür ?string — yardımcı bulunamazsa null.
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()
public static function extractCandidates(string $html): array
İçerikten Tailwind sınıf adlarını çıkarır (class ve className özniteliklerini okur). Döndürür array<string>.
use TailwindPHP\tw;
tw::extractCandidates('<div class="flex p-4" className="bg-blue-500">');
// ['flex', 'p-4', 'bg-blue-500']
tw::extractCandidatesFromStrings()
public static function extractCandidatesFromStrings(string $source): array
Sınıf listelerini class öznitelikleri yerine değişkenlerde oluşturan şablonlar için kaynak kodundaki tek veya çift tırnaklı her dizeden sınıf adı adaylarını çıkarır. Her dize boşluklara göre bölünür ve sınıf adına benzeyen her belirteç tutulur. Döndürür array<string>.
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);
Düz sözcükler de denetimden geçer (yukarıdaki hello, world); yardımcı adları olmadıkları sürece hiçbir şeye derlenmezler. Sonucu css() öğesine aktarın; çünkü generate() yalnızca class özniteliklerini okur.
tw::cssMap()
public static function cssMap(string $css = '@import "tailwindcss";'): array
Mevcut CSS öğelerini Tailwind sınıflarına dönüştürmek için kullanışlı olan, CSS bildirimlerinden yardımcı sınıflara ters eşleme oluşturur. Anahtarlar, değişkenleri çözümlenmiş "property: value" dizeleridir (birden fazla özellik içeren yardımcılar ayrıca "prop: value; prop: value" anahtar alır); değerler sınıf adlarıdır. Döndürür array<string, string>.
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'
Eşleme, yaygın yardımcı programların sabit bir listesini kapsar (display, position, flexbox, tipografi, boşluk ve boyut adımları, kenarlıklar, siyah/beyaz/şeffaf renkler ve benzerleri); her yardımcı programı veya tema rengini kapsamaz. $css bağımsız değişkeni bu yardımcı programların çözümlenmiş değerlerini değiştirir, ancak özel tema belirteçleri (ör. --color-brand) yeni girdiler eklemez.
tw::minify()
public static function minify(string $css): string
İsteğe bağlı bir CSS dizesini küçültür: yorumları kaldırır, boşlukları daraltır, onaltılık renkleri kısaltır (#ffffff → #fff), sıfır değerlerdeki birimleri kaldırır (0px → 0) ve daha fazlasını yapar. Döndürür string.
TailwindPHP tarafından kendiliğinden oluşturulan CSS için minify seçeneğini (tw::generate(['minify' => true])) veya derleyici yöntemlerindeki $minify parametresini tercih edin. Bu yol, serileştirme sırasında küçültme yapar; daha hızlıdır ve dize tabanlı geçişin birleştirdiği alt öğe :not() seçicilerini korur.
use TailwindPHP\tw;
$css = tw::generate('<div class="flex p-4">');
$minified = tw::minify($css);
Optimizasyonların tamamı için Önbelleğe alma ve küçültme bölümüne bakın.
tw::clearCache()
public static function clearCache(string|bool|null $cache = true): int
Önbelleğe alınmış CSS dosyalarını siler. Varsayılan önbellek dizini için true değerini verin (veya boş bırakın); özel dizin için bir yol dizesi verin. Döndürür int — silinen dosya sayısı.
use TailwindPHP\tw;
tw::clearCache(); // default directory
tw::clearCache('/path/to/cache'); // custom directory
Tek başına kullanılabilen bir TailwindPHP\clearCache() işlevi de vardır.
tw::colors()
public static function colors(string $css = '@import "tailwindcss";'): array
Temadaki tüm renk değerlerini döndürür. Döndürür array<string, string> (renk adı → hesaplanan değer).
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()
public static function breakpoints(string $css = '@import "tailwindcss";'): array
Temadaki tüm kesme noktası değerlerini döndürür. Döndürür array<string, string> (kesme noktası adı → değer).
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()
public static function spacing(string $css = '@import "tailwindcss";'): array
Temadaki özel boşluk değerlerini döndürür. Döndürür array<string, string> (boşluk adı → değer).
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']
Girdi biçimleri
İnceleme yöntemleri (generate, properties, computedProperties, value, computedValue) üç girdi biçimini kabul eder:
| Biçim | Örnek |
|---|---|
| Yalnızca dize | tw::generate('<div class="flex">') |
| Dize + CSS dizesi | tw::generate('<div class="flex">', '@import "tailwindcss"; @theme { ... }') |
content içeren dizi (+ isteğe bağlı css) |
tw::generate(['content' => '<div class="flex">', 'css' => '@import "tailwindcss";']) |
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 örnek yöntemleri
tw::compile() tarafından döndürülen nesne, derlendiği CSS öğesine bağlı olarak statik sınıfla aynı inceleme arayüzünü sunar. Temayı her çağrıda yeniden ayrıştırmamak için kullanın.
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
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
Biriktirme veya tam üretim
generate() ve css() biriktirme yapar: her çağrı derleyicinin büyüyen kümesine adaylarını ekler ve döndürülen stil sayfası o ana dek görülen her şeyi kapsar. Bu, şablonlar arasında oluşturulan tek bir stil sayfası için uygundur.
generateExact() ve cssExact() her çağrıda verilen içeriği veya adayları tam olarak derler; çağrılar arasında önceki veriler taşınmaz, ancak derleyicinin ayrıştırılmış tasarım sistemi yeniden kullanılır. Çıktı, aynı içeriğin soğuk bir tw::generate() derlemesinin üreteceği sonuçla aynıdır. Bu, uzun ömürlü tek bir derleyiciden sayfa başına CSS oluşturmanın en hızlı yoludur:
use TailwindPHP\tw;
$compiler = tw::compile($themeCss);
foreach ($pages as $slug => $html) {
$perPageCss[$slug] = $compiler->generateExact($html, true);
}
Dört yöntemin tümü, serileştirme sırasında küçültülmüş CSS üreten isteğe bağlı bir $minify bayrağını kabul eder; sonuç tw::generate(['minify' => true]) ile bayt düzeyinde aynıdır ve biçimlendirilmiş çıktıyı sonradan küçültmekten daha az maliyetlidir.
Gelişmiş denetleyiciler
Derlenmiş durumu doğrudan incelemek için:
public function getTheme(): Theme
public function getDesignSystem(): object
public function getCompiled(): array
$compiler->getTheme(); // Theme object with resolved values
$compiler->getDesignSystem(); // Design system: utilities, variants, etc.
$compiler->getCompiled(); // Raw compiled state array
Bunlar dahili yapıları döndürür; içerdikleri bilgiler için Mimari bölümüne bakın.
Daha düşük seviyeli işlevler
tw sınıfı, TailwindPHP içindeki ad alanlarına ayrılmış işlevleri bir araya getirir. Bir TailwindCompiler yerine ham derleme sonucuna ihtiyaç duyduğunuzda kullanışlıdırlar:
| İşlev | Amaç |
|---|---|
compile(string $css, array $options = []): array |
CSS ayrıştırır ve derler. build (birikimli) ve adayları ve isteğe bağlı bir $minify bayrağını alan buildExact kapanışlarını, ayrıca sources, root, features ve designSystem döndürür. tw::compile() ile aynı seçenekleri kabul eder; ancak stateCacheFile hariçtir |
StateCache\compileCssCached(string $css, string $cacheFile, array $options = []): array |
Kalıcı derleyici durumu önbelleği ile compile() |
parseCssState(), finalizeCssState(), compileParsed() |
Ayrıştırmanın iki aşaması (serileştirilebilir bir durum, ardından bu durumdan yeniden oluşturulan kapanışlar) ve compileCssCached() tarafından kullanılan son birleştirme adımıdır. parseCss() ve compileAst() tek adımlı karşılıklar olmaya devam eder |
use function TailwindPHP\compile;
$compiled = compile('@import "tailwindcss";');
$css = $compiled['build'](['flex', 'p-4'], true); // minified
Önbelleğe Alma
tw::generate(), derlenmiş CSS öğelerini diske önbelleğe alabilir; böylece aynı girdiler yeniden derlemeyi atlar.
| Seçenek | Tür | Varsayılan | Amaç |
|---|---|---|---|
cache |
bool | string |
false |
true varsayılan dizini etkinleştirir; bir yol dizgesi, öğeleri bu dizinde önbelleğe alır |
cacheTtl |
int |
yok | Önbellek ömrü (saniye); süresi dolan girdiler yeniden derlenir |
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
]);
Önbellek anahtarı içerikten, CSS yapılandırmasından ve minify seçeneğinden türetilir; bu nedenle farklı girdiler farklı önbellek dosyaları oluşturur. Girdileri tw::clearCache() veya bağımsız TailwindPHP\clearCache() işleviyle temizleyin.
Daha kapsamlı rehber için Önbelleğe alma ve küçültme bölümüne bakın.