
# 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](#input-formats) kabul eder.

Aynı CSS yapılandırmasıyla tekrarlanan işler için [`tw::compile()`](#twcompile) işlevini bir kez çağırın ve döndürülen [`TailwindCompiler`](#tailwindcompiler-instance-methods) değerini yeniden kullanın.

```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
```

İç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`.

```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,
]);
```

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](https://tailwindphp.inline0.dev/tr/docs/usage/imports) |
| `cache` | `bool \| string` | Dosya önbelleğini etkinleştir — bkz. [Önbelleğe alma](#caching) |
| `cacheTtl` | `int` | Önbelleğin saniye cinsinden ömrü |

## tw::compile()

```php
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()`](#accumulating-vs-exact-generation) kullanın. **Döndürür** `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` 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](https://tailwindphp.inline0.dev/tr/docs/advanced/caching#compiler-state-cache) |
| `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 |

```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)
```

Tüm örnek yöntemlerini görmek için [TailwindCompiler örnek yöntemleri](#tailwindcompiler-instance-methods) bölümüne bakın.

## tw::properties()

```php
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).

```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()`](#twproperties) gibi, ancak her CSS değişkeni somut bir değere çözümlenir. **Döndürür** `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
```

Tek bir yardımcı sınıfın **ham** değerini döndürür. **Döndürür** `?string` — yardımcı bulunamazsa `null`.

```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
```

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`.

```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
```

İçerikten Tailwind sınıf adlarını çıkarır (`class` ve `className` özniteliklerini okur). **Döndürür** `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
```

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>`.

```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);
```

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()`](#tailwindcompiler-instance-methods) öğesine aktarın; çünkü `generate()` yalnızca `class` özniteliklerini okur.

## tw::cssMap()

```php
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>`.

```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'
```

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()

```php
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](#tailwindcompiler-instance-methods) `$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.

```php
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](https://tailwindphp.inline0.dev/tr/docs/advanced/caching) bölümüne bakın.

## tw::clearCache()

```php
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ı.

```php
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()

```php
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).

```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
```

Temadaki tüm kesme noktası değerlerini döndürür. **Döndürür** `array<string, string>` (kesme noktası adı → değer).

```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
```

Temadaki özel boşluk değerlerini döndürür. **Döndürür** `array<string, string>` (boşluk adı → değer).

```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']
```

## 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";'])` |

```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 örnek yöntemleri

[`tw::compile()`](#twcompile) 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.

```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
```

### 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:

```php
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:

```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
```

Bunlar dahili yapıları döndürür; içerdikleri bilgiler için [Mimari](https://tailwindphp.inline0.dev/tr/docs/advanced/architecture) 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()`](#twcompile) 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](https://tailwindphp.inline0.dev/tr/docs/advanced/caching#compiler-state-cache) 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 |

```php
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 |

```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
]);
```

Ö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()`](#twclearcache) veya bağımsız `TailwindPHP\clearCache()` işleviyle temizleyin.

Daha kapsamlı rehber için [Önbelleğe alma ve küçültme](https://tailwindphp.inline0.dev/tr/docs/advanced/caching) bölümüne bakın.
