API
Ολόκληρη η στατική επιφάνεια βρίσκεται σε μία κλάση: TailwindPHP\tw (ψευδώνυμο της εσωτερικής κλάσης Tailwind). Κάθε μέθοδος καλείται στατικά, ενώ οι μέθοδοι επιθεώρησης (properties, computedProperties, value, computedValue) δέχονται όλες τις μορφές εισόδου που περιγράφονται στο τέλος αυτής της σελίδας.
Για επαναλαμβανόμενες εργασίες με την ίδια διαμόρφωση CSS, καλέστε μία φορά το tw::compile() και επαναχρησιμοποιήστε την επιστρεφόμενη TailwindCompiler.
use TailwindPHP\tw;
$css = tw::generate('<div class="flex items-center p-4 bg-blue-500">');
tw::generate()
public static function generate(string|array $input, string $css = '@import "tailwindcss";'): string
Αναλύει το περιεχόμενο, εξάγει υποψήφιες κλάσεις και επιστρέφει το παραγόμενο CSS. Το προεπιλεγμένο $css είναι @import "tailwindcss"; και περιλαμβάνει θέμα, preflight και βοηθητικές κλάσεις. Επιστρέφει string.
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,
]);
Η μορφή πίνακα δέχεται τα εξής κλειδιά:
| Κλειδί | Τύπος | Σκοπός |
|---|---|---|
content |
string |
Περιεχόμενο προς σάρωση για υποψήφιες κλάσεις (απαιτείται) |
css |
string |
Είσοδος CSS με οδηγίες Tailwind (προεπιλογή @import "tailwindcss";) |
minify |
bool |
Ελαχιστοποίηση της εξόδου (προεπιλογή false) |
importPaths |
string | array | callable | null |
Φόρτωση του CSS από το σύστημα αρχείων με πλήρη επίλυση @import — δείτε την Εισαγωγή CSS |
cache |
bool | string |
Ενεργοποίηση προσωρινής αποθήκευσης αρχείων — δείτε την Προσωρινή αποθήκευση |
cacheTtl |
int |
Διάρκεια ζωής της προσωρινής αποθήκευσης σε δευτερόλεπτα |
tw::compile()
public static function compile(string $css = '@import "tailwindcss";', array $options = []): TailwindCompiler
Δημιουργεί ένα επαναχρησιμοποιήσιμο TailwindCompiler συνδεδεμένο με το δοσμένο CSS. Η ανάλυση και η κατασκευή του συστήματος σχεδίασης γίνονται μία φορά, οπότε αυτή είναι η αποδοτική επιλογή όταν δημιουργείτε CSS για πολλές διαφορετικές συμβολοσειρές περιεχομένου. Χρησιμοποιήστε το generate() για να συσσωρεύσετε ένα φύλλο στυλ σε διαδοχικές κλήσεις ή το generateExact() για ανεξάρτητη έξοδο ανά σελίδα. Επιστρέφει TailwindCompiler.
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 δέχεται:
| Επιλογή | Τύπος | Σκοπός |
|---|---|---|
stateCacheFile |
string |
Διαδρομή αρχείου PHP που διατηρεί την κατάσταση κατασκευής του μεταγλωττιστή μεταξύ αιτημάτων και διεργασιών — δείτε την Προσωρινή αποθήκευση κατάστασης μεταγλωττιστή |
polyfills |
int |
Ποιες εναλλακτικές τιμές θα εκπέμπονται, ως bitmask των TailwindPHP\POLYFILL_AT_PROPERTY (οι προεπιλογές του @layer properties για μεταβλητές @property) και TailwindPHP\POLYFILL_COLOR_MIX (στατικές εναλλακτικές χρωμάτων πριν από το color-mix()). Προεπιλογή POLYFILL_ALL· το POLYFILL_NONE απενεργοποιεί και τα δύο |
importSearchPaths |
array<string> |
Κατάλογοι προς αναζήτηση κατά την επίλυση του @import από το σύστημα αρχείων |
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)
Δείτε τις μεθόδους στιγμιότυπου TailwindCompiler για την πλήρη επιφάνεια στιγμιότυπου.
tw::properties()
public static function properties(string|array $input, string $css = '@import "tailwindcss";'): array
Επιστρέφει τις ακατέργαστες ιδιότητες CSS μιας κλάσης, αφήνοντας τις μεταβλητές CSS ανεπίλυτες. Επιστρέφει array<string, string> (όνομα ιδιότητας → τιμή).
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()
public static function computedProperties(string|array $input, string $css = '@import "tailwindcss";'): array
Όπως το properties(), αλλά με κάθε μεταβλητή CSS επιλυμένη σε συγκεκριμένη τιμή. Επιστρέφει array<string, string>.
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()
public static function value(string|array $input, string $css = '@import "tailwindcss";'): ?string
Επιστρέφει την ακατέργαστη τιμή μιας μεμονωμένης βοηθητικής κλάσης. Επιστρέφει ?string — null αν δεν βρεθεί η βοηθητική κλάση.
use TailwindPHP\tw;
tw::value('p-4'); // 'calc(var(--spacing) * 4)'
tw::value('text-blue-500'); // 'var(--color-blue-500)'
tw::computedValue()
public static function computedValue(string|array $input, string $css = '@import "tailwindcss";'): ?string
Επιστρέφει την επιλυμένη τιμή μιας μεμονωμένης βοηθητικής κλάσης. Επιστρέφει ?string — null αν δεν βρεθεί η βοηθητική κλάση.
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()
public static function extractCandidates(string $html): array
Εξάγει ονόματα κλάσεων Tailwind από περιεχόμενο (διαβάζει τα γνωρίσματα class και className). Επιστρέφει array<string>.
use TailwindPHP\tw;
tw::extractCandidates('<div class="flex p-4" className="bg-blue-500">');
// ['flex', 'p-4', 'bg-blue-500']
tw::extractCandidatesFromStrings()
public static function extractCandidatesFromStrings(string $source): array
Εξάγει υποψήφιες ονομασίες κλάσεων από κάθε συμβολοσειρά σε μονά ή διπλά εισαγωγικά στον πηγαίο κώδικα, για πρότυπα που δημιουργούν λίστες κλάσεων σε μεταβλητές αντί για γνωρίσματα class. Κάθε συμβολοσειρά χωρίζεται στα κενά και διατηρείται κάθε στοιχείο που μοιάζει με όνομα κλάσης. Επιστρέφει array<string>.
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);
Οι απλές λέξεις περνούν επίσης τον έλεγχο (hello, world παραπάνω)· δεν παράγουν τίποτα κατά τη μεταγλώττιση, εκτός αν είναι ονόματα βοηθητικών κλάσεων. Περάστε το αποτέλεσμα στο css(), καθώς το generate() διαβάζει μόνο γνωρίσματα class.
tw::cssMap()
public static function cssMap(string $css = '@import "tailwindcss";'): array
Δημιουργεί έναν αντίστροφο χάρτη από δηλώσεις CSS σε βοηθητικές κλάσεις, χρήσιμο για τη μετατροπή υφιστάμενων CSS σε κλάσεις Tailwind. Τα κλειδιά είναι συμβολοσειρές "property: value" με επιλυμένες μεταβλητές (οι βοηθητικές κλάσεις πολλών ιδιοτήτων έχουν επίσης κλειδί "prop: value; prop: value"), ενώ οι τιμές είναι ονόματα κλάσεων. Επιστρέφει array<string, string>.
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'
Ο χάρτης καλύπτει μια σταθερή λίστα κοινών βοηθητικών κλάσεων (display, position, flexbox, τυπογραφία, βήματα αποστάσεων και μεγέθους, περιγράμματα, μαύρο/λευκό/διαφανή χρώματα και παρόμοια), όχι κάθε βοηθητική κλάση ή χρώμα θέματος. Το όρισμα $css αλλάζει τις επιλυμένες τιμές αυτών των βοηθητικών κλάσεων, αλλά τα προσαρμοσμένα διακριτικά θέματος (όπως το --color-brand) δεν προσθέτουν εγγραφές.
tw::minify()
public static function minify(string $css): string
Ελαχιστοποιεί μια αυθαίρετη συμβολοσειρά CSS: αφαιρεί σχόλια, συμπτύσσει κενά, συντομεύει δεκαεξαδικά χρώματα (#ffffff → #fff), αφαιρεί μονάδες από μηδενικές τιμές (0px → 0) και άλλα. Επιστρέφει string.
Για CSS που το TailwindPHP δημιουργεί μόνο του, προτιμήστε την επιλογή minify (tw::generate(['minify' => true])) ή την παράμετρο $minify στις μεθόδους μεταγλωττιστή. Με αυτή τη διαδρομή η ελαχιστοποίηση γίνεται κατά τη σειριοποίηση, είναι ταχύτερη και διατηρεί τους επιλογείς απογόνων :not() που συμπτύσσει το πέρασμα βάσει συμβολοσειράς.
use TailwindPHP\tw;
$css = tw::generate('<div class="flex p-4">');
$minified = tw::minify($css);
Δείτε την ενότητα Προσωρινή αποθήκευση & ελαχιστοποίηση για όλες τις βελτιστοποιήσεις.
tw::clearCache()
public static function clearCache(string|bool|null $cache = true): int
Διαγράφει αρχεία CSS από την προσωρινή αποθήκευση. Περάστε true (ή παραλείψτε το) για τον προεπιλεγμένο κατάλογο προσωρινής αποθήκευσης ή μια συμβολοσειρά διαδρομής για προσαρμοσμένο κατάλογο. Επιστρέφει int — τον αριθμό των αρχείων που διαγράφηκαν.
use TailwindPHP\tw;
tw::clearCache(); // default directory
tw::clearCache('/path/to/cache'); // custom directory
Διατίθεται επίσης μια αυτόνομη συνάρτηση TailwindPHP\clearCache().
tw::colors()
public static function colors(string $css = '@import "tailwindcss";'): array
Επιστρέφει όλες τις τιμές χρωμάτων από το θέμα. Επιστρέφει array<string, string> (όνομα χρώματος → υπολογισμένη τιμή).
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()
public static function breakpoints(string $css = '@import "tailwindcss";'): array
Επιστρέφει όλες τις τιμές σημείων διακοπής από το θέμα. Επιστρέφει array<string, string> (όνομα σημείου διακοπής → τιμή).
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()
public static function spacing(string $css = '@import "tailwindcss";'): array
Επιστρέφει τις προσαρμοσμένες τιμές αποστάσεων από το θέμα. Επιστρέφει array<string, string> (όνομα απόστασης → τιμή).
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']
Μορφές εισόδου
Οι μέθοδοι επιθεώρησης (generate, properties, computedProperties, value, computedValue) δέχονται τρεις μορφές εισόδου:
| Μορφή | Παράδειγμα |
|---|---|
| Μόνο συμβολοσειρά | tw::generate('<div class="flex">') |
| Συμβολοσειρά + συμβολοσειρά CSS | tw::generate('<div class="flex">', '@import "tailwindcss"; @theme { ... }') |
Πίνακας με content (+ προαιρετικό css) |
tw::generate(['content' => '<div class="flex">', 'css' => '@import "tailwindcss";']) |
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
Το αντικείμενο που επιστρέφει το tw::compile() παρέχει τις ίδιες δυνατότητες επιθεώρησης με τη στατική κλάση, συνδεδεμένες με το CSS με το οποίο μεταγλωττίστηκε. Χρησιμοποιήστε το για να αποφύγετε την επανάλυση του θέματος σε κάθε κλήση.
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
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
Συσσωρευτική και ακριβής δημιουργία
Τα generate() και css() συσσωρεύουν: κάθε κλήση προσθέτει τις υποψήφιες τιμές της στο σύνολο του μεταγλωττιστή, που διευρύνεται συνεχώς, και το επιστρεφόμενο φύλλο στυλ καλύπτει όλα όσα έχουν εμφανιστεί μέχρι τότε. Αυτό ταιριάζει σε ένα φύλλο στυλ που αναπτύσσεται σε πολλά πρότυπα.
Τα generateExact() και cssExact() μεταγλωττίζουν ακριβώς το δοσμένο περιεχόμενο ή τις υποψήφιες τιμές ανά κλήση, χωρίς μεταφορά δεδομένων μεταξύ κλήσεων, ενώ επαναχρησιμοποιούν το αναλυμένο σύστημα σχεδίασης του μεταγλωττιστή. Η έξοδος είναι ίδια με εκείνη που θα παρήγαγε μια ψυχρή tw::generate() του ίδιου περιεχομένου. Αυτός είναι ο ταχύτερος τρόπος για να δημιουργήσετε CSS ανά σελίδα με έναν μεταγλωττιστή που παραμένει ενεργός για μεγάλο διάστημα:
use TailwindPHP\tw;
$compiler = tw::compile($themeCss);
foreach ($pages as $slug => $html) {
$perPageCss[$slug] = $compiler->generateExact($html, true);
}
Και οι τέσσερις μέθοδοι δέχονται μια προαιρετική σημαία $minify που παράγει ελαχιστοποιημένο CSS κατά τη σειριοποίηση, με ταυτόσημα bytes με το tw::generate(['minify' => true]) και μικρότερο κόστος από την εκ των υστέρων ελαχιστοποίηση της μορφοποιημένης εξόδου.
Προηγμένοι επιθεωρητές
Για άμεση επιθεώρηση της μεταγλωττισμένης κατάστασης:
public function getTheme(): Theme
public function getDesignSystem(): object
public function getCompiled(): array
$compiler->getTheme(); // Theme object with resolved values
$compiler->getDesignSystem(); // Design system: utilities, variants, etc.
$compiler->getCompiled(); // Raw compiled state array
Αυτά επιστρέφουν εσωτερικές δομές· δείτε την Αρχιτεκτονική για το περιεχόμενό τους.
Συναρτήσεις χαμηλότερου επιπέδου
Η κλάση tw περιτυλίγει ένα σύνολο συναρτήσεων με χώρο ονομάτων στο TailwindPHP. Είναι χρήσιμες όταν χρειάζεστε το ακατέργαστο αποτέλεσμα μεταγλώττισης αντί για TailwindCompiler:
| Συνάρτηση | Σκοπός |
|---|---|
compile(string $css, array $options = []): array |
Αναλύει και μεταγλωττίζει το CSS. Επιστρέφει build (συσσωρευτικό) και closures buildExact που δέχονται υποψήφιες τιμές και προαιρετική σημαία $minify, καθώς και τα sources, root, features και designSystem. Δέχεται τις ίδιες επιλογές με το tw::compile() εκτός από το stateCacheFile |
StateCache\compileCssCached(string $css, string $cacheFile, array $options = []): array |
compile() με την επίμονη προσωρινή αποθήκευση κατάστασης μεταγλωττιστή |
parseCssState(), finalizeCssState(), compileParsed() |
Τα δύο στάδια της ανάλυσης (σειριοποιήσιμη κατάσταση και έπειτα οι συναρτήσεις closure που αναδομούνται από αυτήν) και το τελικό βήμα συναρμολόγησης που χρησιμοποιεί το compileCssCached(). Τα parseCss() και compileAst() παραμένουν τα αντίστοιχα μονοβηματικά ισοδύναμα |
use function TailwindPHP\compile;
$compiled = compile('@import "tailwindcss";');
$css = $compiled['build'](['flex', 'p-4'], true); // minified
Προσωρινή αποθήκευση
Το tw::generate() μπορεί να αποθηκεύει προσωρινά τα μεταγλωττισμένα CSS στον δίσκο, ώστε οι ίδιες είσοδοι να παρακάμπτουν την επαναμεταγλώττιση.
| Επιλογή | Τύπος | Προεπιλογή | Σκοπός |
|---|---|---|---|
cache |
bool | string |
false |
Το true ενεργοποιεί τον προεπιλεγμένο κατάλογο· μια συμβολοσειρά διαδρομής αποθηκεύει εκεί προσωρινά |
cacheTtl |
int |
καμία | Διάρκεια ζωής της προσωρινής αποθήκευσης σε δευτερόλεπτα· οι ληγμένες εγγραφές μεταγλωττίζονται ξανά |
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
]);
Το κλειδί της προσωρινής αποθήκευσης προκύπτει από το περιεχόμενο, τη διαμόρφωση CSS και την επιλογή minify, ώστε διαφορετικές είσοδοι να δημιουργούν διαφορετικά αρχεία προσωρινής αποθήκευσης. Διαγράψτε εγγραφές με το tw::clearCache() ή με την αυτόνομη συνάρτηση TailwindPHP\clearCache().
Για τον αναλυτικό οδηγό, δείτε την ενότητα Προσωρινή αποθήκευση & ελαχιστοποίηση.