
# CLI

`./vendor/bin/tailwindphp` je PHP port [@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/next/packages/%40tailwindcss-cli) bez potreby Node.js. Používa rovnaké možnosti zostavenia okrem zdrojových máp (`--map`), obsah však skenuje inak: pozrite si [Čo CLI skenuje](#what-the-cli-scans). Po `composer require tailwindphp/tailwindphp` sa binárny súbor prepojí do `vendor/bin/`.

Ak pri behu potrebujete z PHP iba CSS, použite namiesto toho [API](https://tailwindphp.inline0.dev/sk/docs/api) — CLI je určený na pracovné postupy zostavovania, ktoré zapisujú štýlový hárok na disk.

## Rýchly začiatok

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

## Možnosti

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

Dlhým možnostiam zadajte hodnotu pomocou `=`: `--input=./src/app.css`, `--output=./dist/styles.css`, `--cwd=/path/to/project`. Hodnota oddelená medzerou za dlhou možnosťou (`--input ./src/app.css`) sa v súčasnosti bez chyby ignoruje a zostavenie použije predvolené hodnoty ([#13](https://github.com/inline0/tailwindphp/issues/13)). Krátke možnosti prijímajú hodnotu ako nasledujúci argument (`-i ./src/app.css`).

| Možnosť | Opis | Predvolená hodnota |
|---|---|---|
| `-i, --input` | Vstupný súbor CSS; `--input=-` ho číta zo štandardného vstupu | `@import "tailwindcss"` |
| `-o, --output` | Výstupný súbor | `-` (štandardný výstup) |
| `-w, --watch` | Sledovanie zmien a opätovné zostavenie podľa potreby | — |
| `-m, --minify` | Optimalizácia a minimalizácia výstupu | — |
| `--optimize` | V dokumentácii sa uvádza „optimalizovať bez minimalizácie“; v súčasnosti sa minimalizuje rovnako ako pri `--minify` ([#9](https://github.com/inline0/tailwindphp/issues/9)) | — |
| `--cwd` | Aktuálny pracovný adresár | `.` |
| `-h, --help` | Zobrazenie informácií o použití | — |
| `-V, --version` | Vypísanie verzie | — |
| `-v, --verbose` | Vypísanie zásobníka volaní pri zlyhaní zostavenia | — |

Keď je `--output` nastavené na `-` (predvolená hodnota), skompilované CSS sa vypíše na štandardný výstup, takže ho môžete presmerovať ďalej. Správy o priebehu (banner s verziou a `Done in …ms`) sa vypisujú na štandardný chybový výstup.

Na rozdiel od `@tailwindcss/cli` tu nie je možnosť `--map`: TailwindPHP nevytvára zdrojové mapy.

## Vstup CSS

Vytvorte `app.css` pomocou importu Tailwind, témy a direktív:

```css
@import "tailwindcss";

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

## Čo skenuje CLI

Skenovanie obsahu v CLI zatiaľ nenasleduje `@source` tak, ako to robí `@tailwindcss/cli` ([#8](https://github.com/inline0/tailwindphp/issues/8)). V aktuálnom vydaní:

- **Bez direktívy súboru `@source`** vo vstupnom CSS skenuje CLI rekurzívne pracovný adresár (`--cwd`). Zahŕňa to aj `vendor/` a `node_modules/`; `.gitignore` sa nekontroluje.
- **S jednou alebo viacerými direktívami súboru `@source`** skenuje CLI rekurzívne **adresár vstupného súboru**. Cesta ani globovací vzor v direktíve sa nepoužijú: `@source "../templates"` vedľa `src/app.css` skenuje `src/`, nie `templates/`.
- Direktívy **`@source not "…"`** sa preskočia; nič nevylučujú.
- Direktívy **`@source inline("…")`** a **`@source not inline("…")`** fungujú podľa dokumentácie, pretože ich spracúva samotný kompilátor.

Čítajú sa iba súbory s týmito príponami: `php`, `html`, `htm`, `twig`, `blade.php`, `vue`, `jsx`, `tsx`, `svelte`, `astro` a `mdx`. Názvy tried sa získavajú z atribútov `class` a `className`, rovnako ako v [`tw::extractCandidates()`](https://tailwindphp.inline0.dev/sk/docs/api#twextractcandidates), takže trieda, ktorá sa nachádza iba v reťazci PHP alebo JavaScript, sa nenájde. Takéto triedy môžete vynútiť pomocou `@source inline("…")`.

Kým sa to neopraví, spoľahlivým riešením je umiestniť vstupný súbor CSS na začiatok adresára, ktorý chcete skenovať:

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

Syntax direktívy vrátane foriem `not` a `inline()` nájdete v časti [@source](https://tailwindphp.inline0.dev/sk/docs/usage/source).

## Príklady

```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 vytvorí výstupný adresár, ak neexistuje, a skončí s chybou, ak chýba vstupný súbor alebo sú cesty vstupu a výstupu totožné. Režim sledovania kontroluje vstupný súbor a skenované súbory každých 500 ms a znova zostaví výstup, keď sa niektorý zmení alebo sa objaví nový súbor.

## Globálna inštalácia

Nainštalujte globálne a používajte `tailwindphp` odkiaľkoľvek:

```bash
composer global require tailwindphp/tailwindphp

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

Nastavenie projektu nájdete v časti [Začíname](https://tailwindphp.inline0.dev/sk/docs/getting-started) a generovanie CSS za behu z PHP v časti [API](https://tailwindphp.inline0.dev/sk/docs/api).
