
# CLI

A `./vendor/bin/tailwindphp` a **[@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/next/packages/%40tailwindcss-cli)** PHP portja, amelyhez nem szükséges Node.js. Ugyanazokat az összeállítási beállításokat fogadja, a forrástérképek kivételével (`--map`), de másképp vizsgálja át a tartalmat: lásd: [Mit vizsgál át a CLI](#what-the-cli-scans). A `composer require tailwindphp/tailwindphp` után a bináris állomány a `vendor/bin/` részévé válik.

Ha futásidőben csak CSS kell a(z) PHP alkalmazásból, használja inkább a [API](https://tailwindphp.inline0.dev/hu/docs/api) megoldást — a CLI olyan összeállítási munkafolyamatokhoz való, amelyek lemezre írnak stíluslapot.

## Gyors kezdés

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

## Beállítások

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

A hosszú kapcsolók értékét a `=` jellel adja meg: `--input=./src/app.css`, `--output=./dist/styles.css`, `--cwd=/path/to/project`. A hosszú kapcsoló utáni szóközzel elválasztott értéket (`--input ./src/app.css`) a rendszer jelenleg hiba nélkül figyelmen kívül hagyja, az összeállítás pedig az alapértelmezésekkel folytatódik ([#13](https://github.com/inline0/tailwindphp/issues/13)). A rövid kapcsolóknál az értéket következő argumentumként kell megadni (`-i ./src/app.css`).

| Kapcsoló | Leírás | Alapértelmezés |
|---|---|---|
| `-i, --input` | Bemeneti CSS fájl; a `--input=-` a szabványos bemenetről olvassa be | `@import "tailwindcss"` |
| `-o, --output` | Kimeneti fájl | `-` (szabványos kimenet) |
| `-w, --watch` | Változások figyelése és szükség szerinti újraépítés | — |
| `-m, --minify` | A kimenet optimalizálása és tömörítése | — |
| `--optimize` | A dokumentáció szerint „optimalizálás tömörítés nélkül”; jelenleg a `--minify` módjához hasonlóan tömörít ([#9](https://github.com/inline0/tailwindphp/issues/9)) | — |
| `--cwd` | Aktuális munkakönyvtár | `.` |
| `-h, --help` | Használati információk megjelenítése | — |
| `-V, --version` | Verzió kiírása | — |
| `-v, --verbose` | Veremkövetés kiírása, ha az összeállítás sikertelen | — |

Ha a `--output` értéke `-` (az alapértelmezett), a lefordított CSS a szabványos kimenetre kerül, így továbbíthatja egy másik parancsnak. Az állapotüzenetek (a verziószámot tartalmazó fejléc és a `Done in …ms`) a szabványos hibakimenetre kerülnek.

A `@tailwindcss/cli` megoldással ellentétben itt nincs `--map` kapcsoló: a TailwindPHP nem készít forrástérképeket.

## Bemeneti CSS

Hozzon létre egy `app.css` fájlt a Tailwind importtal, témával és direktívákkal:

```css
@import "tailwindcss";

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

## Mit vizsgál át a CLI

A CLI tartalomvizsgálata még nem követi a `@source` működését úgy, ahogy a `@tailwindcss/cli` teszi ([#8](https://github.com/inline0/tailwindphp/issues/8)). A jelenlegi kiadásban:

- **Ha a bemeneti CSS fájl nem tartalmaz `@source` direktívát**, a CLI rekurzívan átvizsgálja a munkakönyvtárat (`--cwd`). Ez a `vendor/` és a `node_modules/` tartalmát is magában foglalja; a `.gitignore` értékét nem veszi figyelembe.
- **Ha egy vagy több `@source` fájldirektíva szerepel**, a CLI rekurzívan átvizsgálja **a bemeneti fájl könyvtárát**. A direktívában szereplő útvonalat vagy glob mintát nem alkalmazza: a `@source "../templates"` és a `src/app.css` egymás mellé helyezve a `src/` tartalmát vizsgálja, nem a `templates/` tartalmát.
- **A `@source not "…"` direktívákat** kihagyja, így azok nem zárnak ki semmit.
- **A `@source inline("…")` és a `@source not inline("…")`** dokumentált módon működik, mert ezeket maga a fordító kezeli.

Csak a következő kiterjesztésű fájlokat olvassa be: `php`, `html`, `htm`, `twig`, `blade.php`, `vue`, `jsx`, `tsx`, `svelte`, `astro` és `mdx`. Az osztályneveket a `class` és a `className` attribútumokból veszi, ugyanúgy, mint a [`tw::extractCandidates()`](https://tailwindphp.inline0.dev/hu/docs/api#twextractcandidates) esetében; ezért nem találja meg az olyan osztályt, amely csak egy PHP vagy JavaScript karakterláncban szerepel. Az ilyen osztályokat a `@source inline("…")` segítségével kényszerítheti bele.

A javításig megbízható megoldás, ha a beolvasandó könyvtár tetejére helyez egy bemeneti CSS fájlt:

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

A direktívák szintaxisáért lásd az [@source](https://tailwindphp.inline0.dev/hu/docs/usage/source) oldalt, beleértve a `not` és `inline()` formákat.

## Példák

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

A CLI létrehozza a kimeneti könyvtárat, ha az még nem létezik; hibával leáll, ha hiányzik a bemeneti fájl, vagy ha a bemeneti és kimeneti útvonal azonos. Figyelő módban 500 ms-onként ellenőrzi a bemeneti és az átvizsgált fájlokat, majd újraépít, ha valamelyik megváltozik, vagy új fájl jelenik meg.

## Globális telepítés

Telepítse globálisan, hogy bárhonnan használhassa a `tailwindphp` parancsot:

```bash
composer global require tailwindphp/tailwindphp

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

A projekt beállításáért lásd az [Első lépések](https://tailwindphp.inline0.dev/hu/docs/getting-started) oldalt, futásidejű CSS-generáláshoz pedig a [API](https://tailwindphp.inline0.dev/hu/docs/api) oldalt, PHP használatával.
