Μετάβαση στο περιεχόμενο

API

Ολόκληρη η στατική επιφάνεια βρίσκεται σε μία κλάση: TailwindPHP\tw (ψευδώνυμο της εσωτερικής κλάσης Tailwind). Κάθε μέθοδος καλείται στατικά, ενώ οι μέθοδοι επιθεώρησης (properties, computedProperties, value, computedValue) δέχονται όλες τις μορφές εισόδου που περιγράφονται στο τέλος αυτής της σελίδας.

Για επαναλαμβανόμενες εργασίες με την ίδια διαμόρφωση CSS, καλέστε μία φορά το tw::compile() και επαναχρησιμοποιήστε την επιστρεφόμενη TailwindCompiler.

PHP
use TailwindPHP\tw;

$css = tw::generate('<div class="flex items-center p-4 bg-blue-500">');

tw::generate()

PHP
public static function generate(string|array $input, string $css = '@import "tailwindcss";'): string

Αναλύει το περιεχόμενο, εξάγει υποψήφιες κλάσεις και επιστρέφει το παραγόμενο CSS. Το προεπιλεγμένο $css είναι @import "tailwindcss"; και περιλαμβάνει θέμα, preflight και βοηθητικές κλάσεις. Επιστρέφει string.

PHP
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()

PHP
public static function compile(string $css = '@import "tailwindcss";', array $options = []): TailwindCompiler

Δημιουργεί ένα επαναχρησιμοποιήσιμο TailwindCompiler συνδεδεμένο με το δοσμένο CSS. Η ανάλυση και η κατασκευή του συστήματος σχεδίασης γίνονται μία φορά, οπότε αυτή είναι η αποδοτική επιλογή όταν δημιουργείτε CSS για πολλές διαφορετικές συμβολοσειρές περιεχομένου. Χρησιμοποιήστε το generate() για να συσσωρεύσετε ένα φύλλο στυλ σε διαδοχικές κλήσεις ή το generateExact() για ανεξάρτητη έξοδο ανά σελίδα. Επιστρέφει TailwindCompiler.

PHP
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 από το σύστημα αρχείων
PHP
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()

PHP
public static function properties(string|array $input, string $css = '@import "tailwindcss";'): array

Επιστρέφει τις ακατέργαστες ιδιότητες CSS μιας κλάσης, αφήνοντας τις μεταβλητές CSS ανεπίλυτες. Επιστρέφει array<string, string> (όνομα ιδιότητας → τιμή).

PHP
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()

PHP
public static function computedProperties(string|array $input, string $css = '@import "tailwindcss";'): array

Όπως το properties(), αλλά με κάθε μεταβλητή CSS επιλυμένη σε συγκεκριμένη τιμή. Επιστρέφει array<string, string>.

PHP
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()

PHP
public static function value(string|array $input, string $css = '@import "tailwindcss";'): ?string

Επιστρέφει την ακατέργαστη τιμή μιας μεμονωμένης βοηθητικής κλάσης. Επιστρέφει ?string — null αν δεν βρεθεί η βοηθητική κλάση.

PHP
use TailwindPHP\tw;

tw::value('p-4');           // 'calc(var(--spacing) * 4)'
tw::value('text-blue-500'); // 'var(--color-blue-500)'

tw::computedValue()

PHP
public static function computedValue(string|array $input, string $css = '@import "tailwindcss";'): ?string

Επιστρέφει την επιλυμένη τιμή μιας μεμονωμένης βοηθητικής κλάσης. Επιστρέφει ?string — null αν δεν βρεθεί η βοηθητική κλάση.

PHP
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()

PHP
public static function extractCandidates(string $html): array

Εξάγει ονόματα κλάσεων Tailwind από περιεχόμενο (διαβάζει τα γνωρίσματα class και className). Επιστρέφει array<string>.

PHP
use TailwindPHP\tw;

tw::extractCandidates('<div class="flex p-4" className="bg-blue-500">');
// ['flex', 'p-4', 'bg-blue-500']

tw::extractCandidatesFromStrings()

PHP
public static function extractCandidatesFromStrings(string $source): array

Εξάγει υποψήφιες ονομασίες κλάσεων από κάθε συμβολοσειρά σε μονά ή διπλά εισαγωγικά στον πηγαίο κώδικα, για πρότυπα που δημιουργούν λίστες κλάσεων σε μεταβλητές αντί για γνωρίσματα class. Κάθε συμβολοσειρά χωρίζεται στα κενά και διατηρείται κάθε στοιχείο που μοιάζει με όνομα κλάσης. Επιστρέφει array<string>.

PHP
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()

PHP
public static function cssMap(string $css = '@import "tailwindcss";'): array

Δημιουργεί έναν αντίστροφο χάρτη από δηλώσεις CSS σε βοηθητικές κλάσεις, χρήσιμο για τη μετατροπή υφιστάμενων CSS σε κλάσεις Tailwind. Τα κλειδιά είναι συμβολοσειρές "property: value" με επιλυμένες μεταβλητές (οι βοηθητικές κλάσεις πολλών ιδιοτήτων έχουν επίσης κλειδί "prop: value; prop: value"), ενώ οι τιμές είναι ονόματα κλάσεων. Επιστρέφει array<string, string>.

PHP
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()

PHP
public static function minify(string $css): string

Ελαχιστοποιεί μια αυθαίρετη συμβολοσειρά CSS: αφαιρεί σχόλια, συμπτύσσει κενά, συντομεύει δεκαεξαδικά χρώματα (#ffffff → #fff), αφαιρεί μονάδες από μηδενικές τιμές (0px → 0) και άλλα. Επιστρέφει string.

Για CSS που το TailwindPHP δημιουργεί μόνο του, προτιμήστε την επιλογή minify (tw::generate(['minify' => true])) ή την παράμετρο $minify στις μεθόδους μεταγλωττιστή. Με αυτή τη διαδρομή η ελαχιστοποίηση γίνεται κατά τη σειριοποίηση, είναι ταχύτερη και διατηρεί τους επιλογείς απογόνων :not() που συμπτύσσει το πέρασμα βάσει συμβολοσειράς.

PHP
use TailwindPHP\tw;

$css = tw::generate('<div class="flex p-4">');
$minified = tw::minify($css);

Δείτε την ενότητα Προσωρινή αποθήκευση & ελαχιστοποίηση για όλες τις βελτιστοποιήσεις.

tw::clearCache()

PHP
public static function clearCache(string|bool|null $cache = true): int

Διαγράφει αρχεία CSS από την προσωρινή αποθήκευση. Περάστε true (ή παραλείψτε το) για τον προεπιλεγμένο κατάλογο προσωρινής αποθήκευσης ή μια συμβολοσειρά διαδρομής για προσαρμοσμένο κατάλογο. Επιστρέφει int — τον αριθμό των αρχείων που διαγράφηκαν.

PHP
use TailwindPHP\tw;

tw::clearCache();                  // default directory
tw::clearCache('/path/to/cache');  // custom directory

Διατίθεται επίσης μια αυτόνομη συνάρτηση TailwindPHP\clearCache().

tw::colors()

PHP
public static function colors(string $css = '@import "tailwindcss";'): array

Επιστρέφει όλες τις τιμές χρωμάτων από το θέμα. Επιστρέφει array<string, string> (όνομα χρώματος → υπολογισμένη τιμή).

PHP
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()

PHP
public static function breakpoints(string $css = '@import "tailwindcss";'): array

Επιστρέφει όλες τις τιμές σημείων διακοπής από το θέμα. Επιστρέφει array<string, string> (όνομα σημείου διακοπής → τιμή).

PHP
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()

PHP
public static function spacing(string $css = '@import "tailwindcss";'): array

Επιστρέφει τις προσαρμοσμένες τιμές αποστάσεων από το θέμα. Επιστρέφει array<string, string> (όνομα απόστασης → τιμή).

PHP
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";'])
PHP
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 με το οποίο μεταγλωττίστηκε. Χρησιμοποιήστε το για να αποφύγετε την επανάλυση του θέματος σε κάθε κλήση.

PHP
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
PHP
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 ανά σελίδα με έναν μεταγλωττιστή που παραμένει ενεργός για μεγάλο διάστημα:

PHP
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]) και μικρότερο κόστος από την εκ των υστέρων ελαχιστοποίηση της μορφοποιημένης εξόδου.

Προηγμένοι επιθεωρητές

Για άμεση επιθεώρηση της μεταγλωττισμένης κατάστασης:

PHP
public function getTheme(): Theme
public function getDesignSystem(): object
public function getCompiled(): array
PHP
$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() παραμένουν τα αντίστοιχα μονοβηματικά ισοδύναμα
PHP
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 καμία Διάρκεια ζωής της προσωρινής αποθήκευσης σε δευτερόλεπτα· οι ληγμένες εγγραφές μεταγλωττίζονται ξανά
PHP
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().

Για τον αναλυτικό οδηγό, δείτε την ενότητα Προσωρινή αποθήκευση & ελαχιστοποίηση.