
# CLI

Το `./vendor/bin/tailwindphp` είναι μια PHP υλοποίηση του **[@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/next/packages/%40tailwindcss-cli)** χωρίς να απαιτείται Node.js. Δέχεται τις ίδιες επιλογές δημιουργίας, εκτός από τους χάρτες πηγαίου κώδικα (`--map`), αλλά σαρώνει το περιεχόμενο διαφορετικά: δείτε [Τι σαρώνει το CLI](#what-the-cli-scans). Μετά το `composer require tailwindphp/tailwindphp`, το εκτελέσιμο συνδέεται με το `vendor/bin/`.

Αν χρειάζεστε μόνο το CSS κατά την εκτέλεση από το PHP, χρησιμοποιήστε αντί γι' αυτό το [API](https://tailwindphp.inline0.dev/el/docs/api) — το CLI προορίζεται για ροές εργασίας στο στάδιο δημιουργίας που γράφουν ένα φύλλο στυλ στον δίσκο.

## Γρήγορη εκκίνηση

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

## Επιλογές

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

Δώστε τιμή στις επιλογές μεγάλου ονόματος με `=`: `--input=./src/app.css`, `--output=./dist/styles.css`, `--cwd=/path/to/project`. Τιμή χωρισμένη με κενό μετά από επιλογή μεγάλου ονόματος (`--input ./src/app.css`) αγνοείται προς το παρόν χωρίς σφάλμα και η δημιουργία χρησιμοποιεί τις προεπιλογές ([#13](https://github.com/inline0/tailwindphp/issues/13)). Οι επιλογές μικρού ονόματος δέχονται την τιμή ως επόμενο όρισμα (`-i ./src/app.css`).

| Επιλογή | Περιγραφή | Προεπιλογή |
|---|---|---|
| `-i, --input` | Αρχείο εισόδου CSS· το `--input=-` το διαβάζει από stdin | `@import "tailwindcss"` |
| `-o, --output` | Αρχείο εξόδου | `-` (stdout) |
| `-w, --watch` | Παρακολούθηση αλλαγών και αναδημιουργία όταν χρειάζεται | — |
| `-m, --minify` | Βελτιστοποίηση και ελαχιστοποίηση της εξόδου | — |
| `--optimize` | Τεκμηριώνεται ως «βελτιστοποίηση χωρίς ελαχιστοποίηση»· προς το παρόν ελαχιστοποιεί όπως το `--minify` ([#9](https://github.com/inline0/tailwindphp/issues/9)) | — |
| `--cwd` | Τρέχων κατάλογος εργασίας | `.` |
| `-h, --help` | Εμφάνιση πληροφοριών χρήσης | — |
| `-V, --version` | Εκτύπωση έκδοσης | — |
| `-v, --verbose` | Εκτύπωση της στοίβας κλήσεων όταν αποτυγχάνει μια δημιουργία | — |

Όταν το `--output` είναι `-` (η προεπιλογή), το μεταγλωττισμένο CSS γράφεται στο stdout, ώστε να μπορείτε να το διοχετεύσετε αλλού. Τα μηνύματα προόδου (το πανό έκδοσης και το `Done in …ms`) γράφονται στο stderr.

Σε αντίθεση με το `@tailwindcss/cli`, δεν υπάρχει επιλογή `--map`: το TailwindPHP δεν δημιουργεί χάρτες πηγαίου κώδικα.

## Είσοδος CSS

Δημιουργήστε ένα `app.css` με την εισαγωγή Tailwind, το θέμα και τις οδηγίες σας:

```css
@import "tailwindcss";

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

## Τι σαρώνει το CLI

Η σάρωση περιεχομένου στο CLI δεν ακολουθεί ακόμη το `@source` με τον τρόπο που το κάνει το `@tailwindcss/cli` ([#8](https://github.com/inline0/tailwindphp/issues/8)). Στην τρέχουσα έκδοση:

- **Χωρίς οδηγία αρχείου `@source`** στο CSS εισόδου, το CLI σαρώνει αναδρομικά τον κατάλογο εργασίας (`--cwd`). Αυτό περιλαμβάνει τα `vendor/` και `node_modules/`· το `.gitignore` δεν λαμβάνεται υπόψη.
- **Με μία ή περισσότερες οδηγίες αρχείου `@source`**, το CLI σαρώνει αναδρομικά τον **κατάλογο του αρχείου εισόδου**. Η διαδρομή ή το glob της οδηγίας δεν εφαρμόζεται: το `@source "../templates"` δίπλα στο `src/app.css` σαρώνει το `src/`, όχι το `templates/`.
- Οι οδηγίες **`@source not "…"`** παραλείπονται· δεν αποκλείουν τίποτα.
- Τα **`@source inline("…")`** και **`@source not inline("…")`** λειτουργούν όπως τεκμηριώνεται, επειδή τα χειρίζεται ο ίδιος ο μεταγλωττιστής.

Διαβάζονται μόνο αρχεία με αυτές τις επεκτάσεις: `php`, `html`, `htm`, `twig`, `blade.php`, `vue`, `jsx`, `tsx`, `svelte`, `astro` και `mdx`. Τα ονόματα κλάσεων λαμβάνονται από τα attributes `class` και `className`, όπως και στο [`tw::extractCandidates()`](https://tailwindphp.inline0.dev/el/docs/api#twextractcandidates), επομένως δεν εντοπίζεται μια κλάση που εμφανίζεται μόνο σε συμβολοσειρά PHP ή JavaScript. Επιβάλετε τη συμπερίληψη τέτοιων κλάσεων με το `@source inline("…")`.

Μέχρι να διορθωθεί αυτό, η αξιόπιστη ρύθμιση είναι ένα αρχείο CSS εισόδου στην κορυφή του καταλόγου που θέλετε να σαρωθεί:

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

Δείτε το [@source](https://tailwindphp.inline0.dev/el/docs/usage/source) για τη σύνταξη της οδηγίας, συμπεριλαμβανομένων των μορφών `not` και `inline()`.

## Παραδείγματα

```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 δημιουργεί τον κατάλογο εξόδου αν δεν υπάρχει και τερματίζει με σφάλμα αν λείπει το αρχείο εισόδου ή αν οι διαδρομές εισόδου και εξόδου είναι ίδιες. Η λειτουργία παρακολούθησης ελέγχει το αρχείο εισόδου και τα σαρωμένα αρχεία κάθε 500 ms και δημιουργεί ξανά την έξοδο όταν κάποιο αλλάξει ή εμφανιστεί νέο αρχείο.

## Καθολική εγκατάσταση

Εγκαταστήστε το καθολικά για να χρησιμοποιείτε το `tailwindphp` από οπουδήποτε:

```bash
composer global require tailwindphp/tailwindphp

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

Δείτε την ενότητα [Ξεκινώντας](https://tailwindphp.inline0.dev/el/docs/getting-started) για ρύθμιση έργου και την [API](https://tailwindphp.inline0.dev/el/docs/api) για δημιουργία CSS κατά την εκτέλεση από το PHP.
