TailwindPHP
Μεταφορά του TailwindCSS 4.x σε PHP. Δημιουργήστε CSS με PHP για τις κλάσεις Tailwind, χωρίς Node.js και χωρίς βήμα μεταγλώττισης. Περιλαμβάνει cn(), tailwind-merge, CVA, πρόσθετα τυπογραφίας και φορμών και CLI.
composer require tailwindphp/tailwindphpΤελευταία έκδοση v1.7.0 MIT PHP 8.2+
use function TailwindPHP\merge;
merge('px-2 py-1 bg-red-500', 'px-4 bg-blue-500');
// => 'py-1 px-4 bg-blue-500'
// Conflict resolution is variant-aware
merge('hover:bg-red-500', 'hover:bg-blue-500');
// => 'hover:bg-blue-500'Στην πράξη
Περάστε σήμανση και προαιρετικό αρχείο εισόδου CSS σε μία κλήση PHP και λάβετε ένα φύλλο στυλ.
Δημιουργήστε CSS από PHP
Το tw::generate() σαρώνει τη σήμανση για ονόματα κλάσεων και επιστρέφει μόνο τις CSS που χρειάζονται αυτές οι κλάσεις. Το δεύτερο όρισμα δέχεται αρχείο εισόδου CSS, ώστε ένα χρώμα που ορίζεται στο @theme να γίνεται βοηθητικό εργαλείο.
Το cn() δημιουργεί συμβολοσειρές κλάσεων και επιλύει διενέξεις Tailwind, ώστε να υπερισχύει το τελευταίο αντικρουόμενο βοηθητικό εργαλείο.
use TailwindPHP\tw;
$css = tw::generate(
'<div class="bg-brand p-4">Hello</div>',
'@import "tailwindcss"; @theme { --color-brand: #3b82f6; }'
);
// .bg-brand now resolves to var(--color-brand)use function TailwindPHP\cn;
cn('px-2 py-1', 'px-4'); // 'py-1 px-4'
cn('btn', ['btn-primary' => true]); // 'btn btn-primary'Αμιγές PHP
Χωρίς Node.js και χωρίς βήμα κατασκευής. Λειτουργεί σε PHP 8.2+ με τις τυπικές επεκτάσεις mbstring και ctype. Εκτελέστε composer require και ξεκινήστε.
Ακολουθεί τις TailwindCSS του v4.3.3
Μεταφορά του Tailwind v4.3.3 με τα ίδια βοηθητικά εργαλεία, παραλλαγές και οδηγίες. Οι γνωστές διαφορές από το Tailwind καταγράφονται στην τεκμηρίωση.
4,400+ δοκιμές
Το αποτέλεσμα επαληθεύεται με τις ίδιες τις σειρές δοκιμών του TailwindCSS, που εξήχθησαν από τον πηγαίο κώδικα TypeScript και εκτελούνται ξανά σε κάθε push.
Όλα τα βοηθητικά εργαλεία και οι παραλλαγές
Το πλήρες σύνολο βοηθητικών εργαλείων και όλες οι παραλλαγές: hover, focus, προσαρμογή σε οθόνη, σκοτεινή λειτουργία, ερωτήματα κοντέινερ και αυθαίρετες τιμές.
Οδηγίες CSS
Τα @import, @theme, @apply, @utility, @custom-variant, @layer, @plugin και @source αναλύονται και επιλύονται σε PHP.
Δημιουργία κατά τον χρόνο εκτέλεσης
Δημιουργήστε βοηθητικά CSS δυναμικά από HTML, περιεχόμενο βάσης δεδομένων ή μεταβλητές προτύπου. Δεν απαιτείται βήμα κατασκευής.
Όλα έτοιμα
Τα cn(), merge(), join() και variants(): clsx, tailwind-merge και CVA μεταφέρθηκαν στο PHP, χωρίς επιπλέον πακέτα.
Πρόσθετα
Τα @tailwindcss/typography και @tailwindcss/forms μεταφέρθηκαν στο PHP, μαζί με ένα πρόσθετο PHP API για τα δικά σας βοηθητικά εργαλεία και στοιχεία.
CLI
Το bin/tailwindphp δημιουργεί ένα φύλλο στυλ από ένα αρχείο εισόδου CSS με τις επιλογές -i, -o, --watch και --minify.
Επιθεώρηση του θέματος
Διαβάστε ακατέργαστες και υπολογισμένες τιμές ιδιοτήτων, χρώματα, σημεία διακοπής και διαστήματα για οποιαδήποτε κλάση, απευθείας από το PHP.
Προσωρινή μνήμη και ελαχιστοποιητής
Ένας ενσωματωμένος ελαχιστοποιητής CSS και μια προσωρινή μνήμη αρχείων με TTL επιταχύνουν τις επαναλαμβανόμενες κατασκευές και περιορίζουν το μέγεθος της εξόδου.
Πλαίσια εργασίας WordPress & PHP
Διαθέστε θέματα και πρόσθετα βασισμένα σε Tailwind χωρίς Node.js στη στοίβα. Το TailwindPHP είναι μία μόνο εξάρτηση Composer.
Γιατί TailwindPHP
Ένα περιβάλλον εκτέλεσης στην παραγωγή
Ένα έργο PHP που υιοθετεί το Tailwind συνήθως αναλαμβάνει επίσης το Node.js, μια εγκατάσταση npm και ένα βήμα κατασκευής στα CI και Docker. Αντί γι' αυτό, το TailwindPHP μεταγλωττίζει το CSS μέσα στη διαδικασία PHP.
CSS για περιεχόμενο γνωστό κατά τον χρόνο εκτέλεσης
Η σήμανση από βάση δεδομένων, η είσοδος χρήστη ή μια μεταβλητή προτύπου μπορεί να περαστεί απευθείας στο tw::generate(), το οποίο επιστρέφει μόνο τις CSS που χρειάζονται οι κλάσεις της.
Επαληθευμένο με συγκεκριμένη έκδοση του Tailwind
Οι περιπτώσεις δοκιμών εξάγονται από τον πηγαίο κώδικα Tailwind που έχει οριστεί στο αποθετήριο και εκτελούνται με την έξοδο PHP, οπότε κάθε απόκλιση αποτυγχάνει στο CI. Η έκδοση 1.7.0 επαληθεύτηκε με Tailwind v4.3.3 και 4,427 δοκιμές.
CSS ανά σελίδα από έναν μεταγλωττιστή
Μεταγλωττίστε το θέμα μία φορά με το tw::compile() και έπειτα καλέστε το generateExact() για κάθε σελίδα. Κάθε κλήση επιστρέφει ό,τι θα παρήγαγε μια ψυχρή tw::generate() της σελίδας, χωρίς να αναλύσει ξανά το θέμα.
Σε σύγκριση με
Το Tailwind Labs διαθέτει δικούς του τρόπους δημιουργίας Tailwind CSS. Έτσι διαφέρει το TailwindPHP.
| Εργαλείο | Κατάλληλο για | Διαφορά με το TailwindPHP |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Κατάλληλο γιαΤο δικό του εργαλείο γραμμής εντολών του Tailwind, εγκατεστημένο από το npm. Σαρώνει τα αρχεία HTML, τα στοιχεία και τα πρότυπά σας για ονόματα κλάσεων και γράφει τα αντίστοιχα στυλ σε ένα στατικό αρχείο CSS. | Διαφορά με το TailwindPHPΤο TailwindPHP μεταγλωττίζει μέσα στο PHP χωρίς εγκατάσταση Node.js ή npm. Ακολουθεί μια σταθερή έκδοση Tailwind (v4.3.3 στο 1.7.0), ενώ το δικό του σημείο αναφοράς απόδοσης δείχνει ότι το αρχικό TypeScript εκτελεί τα χαμηλού επιπέδου βήματα ταχύτερα. |
| Αυτόνομο Tailwind CLI | Κατάλληλο γιαΤο Tailwind CLI ως αυτόνομο εκτελέσιμο, για έργα που θέλουν να το χρησιμοποιούν χωρίς να εγκαταστήσουν το Node.js. | Διαφορά με το TailwindPHPΤο εκτελέσιμο είναι ξεχωριστό δυαδικό αρχείο που εκτελείται ως βήμα κατασκευής. Το TailwindPHP είναι πακέτο Composer που καλείται από τον κώδικα PHP, ώστε να μπορεί επίσης να δημιουργεί CSS κατά τον χρόνο του αιτήματος, από περιεχόμενο βάσης δεδομένων ή μεταβλητές προτύπου. |
| Tailwind Play CDN | Κατάλληλο γιαΜια ετικέτα script που εκτελεί το Tailwind στο πρόγραμμα περιήγησης, για δοκιμή χωρίς βήμα κατασκευής. Η τεκμηρίωση του Tailwind αναφέρει ότι έχει σχεδιαστεί για ανάπτυξη και δεν προορίζεται για παραγωγή. | Διαφορά με το TailwindPHPΤο TailwindPHP δεν χρειάζεται επίσης βήμα κατασκευής, αλλά δημιουργεί το CSS στο PHP στον διακομιστή και το επιστρέφει ως συμβολοσειρά, για παράδειγμα ώστε να γραφτεί σε ένα φύλλο στυλ. |
Ερωτήσεις και απαντήσεις
Σύντομες απαντήσεις από την τεκμηρίωση του TailwindPHP.
Η έκδοση 1.7.0 ακολουθεί το Tailwind CSS v4.3.3. Οι σειρές δοκιμών του εξήχθησαν ξανά για αυτή την έκδοση.
Η έξοδος δοκιμάζεται με περιπτώσεις που εξήχθησαν από τα ίδια τα αρχεία δοκιμών του Tailwind. Το ιστορικό αλλαγών του 1.7.0 καταγράφει ορισμένες διαφορές σειριοποίησης· για παράδειγμα, το .p-0 διατηρεί το padding: 0px, ενώ το αναφοράς CLI αποδίδει padding: 0.
Όχι. Τα πρόσθετα είναι PHP: τα πρόσθετα τυπογραφίας και φορμών έχουν μεταφερθεί, ενώ μπορείτε να γράψετε τα δικά σας με βάση το API PHP για πρόσθετα API και να τα καταχωρίσετε με το registerPlugin(). Ένα όνομα @plugin που δεν έχει καταχωριστεί προκαλεί σφάλμα.
Στο σημείο αναφοράς απόδοσης του έργου, με PHP 8.4.5 και έναν Apple M1, η δημιουργία πλήρους σελίδας χρειάστηκε περίπου 14 ms ανά σελίδα. Για επαναλαμβανόμενη είσοδο, η προσωρινή μνήμη αρχείων παραλείπει τη μεταγλώττιση, ενώ ένας μεταγλωττιστής μεγάλης διάρκειας με generateExact() επαναχρησιμοποιεί το αναλυμένο θέμα.
Όχι. Τα IntelliSense, η αυτόματη συμπλήρωση, η ταξινόμηση κλάσεων και οι χάρτες πηγαίου κώδικα έχουν παραλειφθεί σκόπιμα. Το TailwindPHP δημιουργεί μόνο CSS.
Το PHP 8.2 ή νεότερη έκδοση, με τις επεκτάσεις ctype και mbstring. Το composer.json δηλώνει την έκδοση PHP, ενώ το CI εκτελεί τη σειρά δοκιμών σε PHP 8.2, 8.3 και 8.4.
Εγκαταστήστε το πακέτο με το Composer και ακολουθήστε τον οδηγό έναρξης για να δημιουργήσετε το πρώτο σας φύλλο στυλ από το PHP.