
# CLI

`./vendor/bin/tailwindphp`, [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/next/packages/%40tailwindcss-cli)'ın PHP uyarlamasıdır ve Node.js gerektirmez. Kaynak eşlemeleri (`--map`) dışında aynı derleme seçeneklerini alır; ancak içeriği farklı tarar: bkz. [What the CLI scans](#what-the-cli-scans). `composer require tailwindphp/tailwindphp` sonrasında ikili dosya `vendor/bin/` içine bağlanır.

Çalışma zamanında PHP içinden yalnızca CSS gerekiyorsa, bunun yerine [API](https://tailwindphp.inline0.dev/tr/docs/api) kullanın; CLI, stil sayfasını diske yazan derleme adımı iş akışları içindir.

## Hızlı başlangıç

```bash
# Build CSS from an input file
./vendor/bin/tailwindphp -i ./src/app.css -o ./dist/styles.css

# Watch for changes and rebuild
./vendor/bin/tailwindphp -i ./src/app.css -o ./dist/styles.css --watch

# Build minified for production
./vendor/bin/tailwindphp -i ./src/app.css -o ./dist/styles.css --minify
```

## Seçenekler

```bash
tailwindphp [-i input.css] [-o output.css] [--watch] [options…]
```

Uzun seçeneklere değerlerini `=` ile verin: `--input=./src/app.css`, `--output=./dist/styles.css`, `--cwd=/path/to/project`. Uzun bir seçeneğin ardından boşlukla ayrılmış değer (`--input ./src/app.css`) şu anda hata vermeden yok sayılır ve derleme varsayılanlara ([#13](https://github.com/inline0/tailwindphp/issues/13)) döner. Kısa seçeneklerde değer sonraki bağımsız değişken olarak verilir (`-i ./src/app.css`).

| Seçenek | Açıklama | Varsayılan |
|---|---|---|
| `-i, --input` | Girdi CSS dosyası; `--input=-` girdiyi stdin'den okur | `@import "tailwindcss"` |
| `-o, --output` | Çıktı dosyası | `-` (stdout) |
| `-w, --watch` | Değişiklikleri izleyip gerektiğinde yeniden derler | — |
| `-m, --minify` | Çıktıyı iyileştirir ve küçültür | — |
| `--optimize` | "Küçültmeden iyileştir" olarak belgelenmiştir; şu anda `--minify` gibi küçültür ([#9](https://github.com/inline0/tailwindphp/issues/9)) | — |
| `--cwd` | Geçerli çalışma dizini | `.` |
| `-h, --help` | Kullanım bilgilerini gösterir | — |
| `-V, --version` | Sürümü yazdırır | — |
| `-v, --verbose` | Derleme başarısız olduğunda yığın izini yazdırır | — |

`--output` `-` olduğunda (varsayılan), derlenen CSS stdout'a yazılır; böylece çıktıyı başka bir yere aktarabilirsiniz. Sürüm bandı ve `Done in …ms` gibi ilerleme iletileri stderr'e gider.

`@tailwindcss/cli`'den farklı olarak `--map` seçeneği yoktur: TailwindPHP kaynak eşlemeleri oluşturmaz.

## Girdi CSS

Tailwind içe aktarmanız, temanız ve yönergelerinizle bir `app.css` oluşturun:

```css
@import "tailwindcss";

@theme {
    --color-brand: #3b82f6;
}
```

## CLI neleri tarar

CLI içindeki içerik taraması henüz `@tailwindcss/cli` gibi `@source` yönergesini izlemez ([#8](https://github.com/inline0/tailwindphp/issues/8)). Mevcut sürümde:

- **Girdi CSS içinde `@source` dosya yönergesi yoksa**, CLI çalışma dizinini (`--cwd`) özyinelemeli olarak tarar. Buna `vendor/` ve `node_modules/` dahildir; `.gitignore` dikkate alınmaz.
- **Bir veya daha fazla `@source` dosya yönergesi varsa**, CLI **girdi dosyasının bulunduğu dizini** özyinelemeli olarak tarar. Yönergedeki yol veya glob uygulanmaz: `src/app.css` yanındaki `@source "../templates"`, `src/` dizinini tarar; `templates/` dizinini değil.
- **`@source not "…"`** yönergeleri atlanır; hiçbir şeyi dışlamazlar.
- **`@source inline("…")`** ve **`@source not inline("…")`** belgelerde anlatıldığı gibi çalışır; çünkü bunları derleyici kendisi işler.

Yalnızca şu uzantılara sahip dosyalar okunur: `php`, `html`, `htm`, `twig`, `blade.php`, `vue`, `jsx`, `tsx`, `svelte`, `astro` ve `mdx`. Sınıf adları, [`tw::extractCandidates()`](https://tailwindphp.inline0.dev/tr/docs/api#twextractcandidates) ile aynı şekilde `class` ve `className` özniteliklerinden alınır; bu nedenle yalnızca bir PHP veya JavaScript dizgesinde görünen sınıflar bulunmaz. Bu tür sınıfları `@source inline("…")` ile zorla ekleyin.

Bu düzeltilene kadar güvenilir kurulum, taranmasını istediğiniz dizinin en üstüne bir girdi CSS dosyası koymaktır:

```css
/* templates/app.css: scans templates/ recursively */
@import "tailwindcss";
@source "./";
```

Sözdizimi için [@source](https://tailwindphp.inline0.dev/tr/docs/usage/source) bölümüne, `not` ve `inline()` biçimleri dahil, bakın.

## Örnekler

```bash
# Build from an input file
tailwindphp -i ./src/app.css -o ./dist/styles.css

# Build minified for production
tailwindphp -i ./src/app.css -o ./dist/styles.css -m

# Watch mode with minification
tailwindphp -i ./src/app.css -o ./dist/styles.css -w -m

# Run against a different working directory
tailwindphp -i app.css -o dist/styles.css --cwd=/path/to/project
```

CLI, yoksa çıktı dizinini oluşturur; girdi dosyası eksikse veya girdi ve çıktı yolları aynıysa hata vererek çıkar. İzleme modu, girdi dosyasını ve taranan dosyaları her 500 ms'de bir yoklar; bunlardan biri değiştiğinde veya yeni bir dosya belirdiğinde yeniden derler.

## Genel kurulum

`tailwindphp` komutunu her yerden kullanmak için genel olarak yükleyin:

```bash
composer global require tailwindphp/tailwindphp

# Now available globally
tailwindphp -i ./src/app.css -o ./dist/styles.css
```

Proje kurulumu için [Başlarken](https://tailwindphp.inline0.dev/tr/docs/getting-started) bölümüne, PHP üzerinden çalışma zamanı CSS oluşturma için de [API](https://tailwindphp.inline0.dev/tr/docs/api) bölümüne bakın.
