Συμβατότητα & αναβαθμίσεις
Αυτή η σελίδα συγκεντρώνει όσα χρειάζεται να γνωρίζετε πριν από αναβάθμιση ή πριν βασιστείτε σε ακριβή έξοδο: τις απαιτήσεις εκτέλεσης, ποια έκδοση TailwindCSS ακολουθεί η μεταφορά, πού το TailwindPHP διαφέρει σκόπιμα από το TailwindCSS και τις σημειώσεις για κάθε έκδοση. Το πλήρες ιστορικό βρίσκεται στο CHANGELOG.md.
Απαιτήσεις
- PHP 8.2 ή νεότερο. Η σουίτα δοκιμών εκτελείται στις εκδόσεις PHP 8.2, 8.3 και 8.4.
- Οι επεκτάσεις
ctypeκαιmbstring. Ο μεταγλωττιστής καλεί ταctype_*καιmb_chr(). Και τα δύο περιλαμβάνονται στις περισσότερες εκδόσεις PHP και στις επίσημες εικόνες Docker, αλλά τοcomposer.jsonδεν τα δηλώνει ακόμη (#11), οπότε μια εγκατάσταση χωρίς αυτά ολοκληρώνεται αλλά αποτυγχάνει κατά την εκτέλεση. - Προαιρετικό:
pcntlεπιτρέπει στη λειτουργία--watchτου CLI να τερματίζει ομαλά μεSIGINT/SIGTERM. Χωρίς αυτό, η λειτουργία παρακολούθησης εξακολουθεί να λειτουργεί.
Δεν χρησιμοποιούνται Node.js, FFI ή εγγενή δυαδικά αρχεία.
Ποια έκδοση TailwindCSS ακολουθείται
Η έκδοση 1.7.0 ακολουθεί τα TailwindCSS v4.3.3. Το αποθετήριο upstream είναι συνδεδεμένο ως υπομονάδα git στο reference/tailwindcss, οι σουίτες δοκιμών του εξάγονται από αυτό το σταθερά επιλεγμένο checkout και οι δοκιμές 4,427 εκτελούνται σε κάθε push (δείτε Απόδοση & δοκιμές). Τα μεταφερμένα πρόσθετα ακολουθούν τα @tailwindcss/typography και @tailwindcss/forms, ενώ τα βοηθητικά στοιχεία κλάσεων ακολουθούν τα clsx, tailwind-merge και CVA, καθένα με τον ίδιο τρόπο σταθερά επιλεγμένο.
Γνωστές διαφορές από το TailwindCSS
Λεπτομέρειες σειριοποίησης
Το παραγόμενο CSS συμφωνεί με τις σουίτες δοκιμών αναφοράς. Μερικές λεπτομέρειες σειριοποίησης διαφέρουν από ό,τι εμφανίζει το TailwindCSS CLI, χωρίς να αλλάζουν την αλληλουχία εφαρμογής:
- Προθέματα προμηθευτών: όταν η αναφορά παράγει τόσο την αρχική γραμμή
-webkit-*όσο και μία παραγόμενη, το TailwindPHP παράγει μία γραμμή. - Τα ψευδοστοιχεία με υποβαθμισμένο επίπεδο (
::file-selector-button,::-webkit-datetime-edit-*) παραμένουν στις αρχικές λίστες επιλογέων τους αντί να διαχωρίζονται σε έναν κανόνα ανά ψευδοστοιχείο. - Οι αρχικές συμβολοσειρές με μονά εισαγωγικά παραμένουν έτσι (
'Segoe UI') αντί να κανονικοποιούνται σε διπλά εισαγωγικά. - Συνυπάρχουσες ιδιότητες longhand δεν συνδυάζονται σε shorthand (η ίδια η έξοδος του Tailwind δεν το χρειάζεται ποτέ).
- Το
.p-0διατηρεί τοpadding: 0px, ενώ η αναφορά CLI παράγει τοpadding: 0, επειδή το εξαγόμενο σώμα δοκιμών καθορίζει τη μορφή0px. Ο ελαχιστοποιητής το συντομεύει σε0.
Δεν περιλαμβάνεται
Το TailwindPHP είναι μεταγλωττιστής CSS. Δεν περιλαμβάνει τα εργαλεία επεξεργαστή του οικοσυστήματος Tailwind (IntelliSense, αυτόματη συμπλήρωση, ταξινόμηση κλάσεων) ούτε source maps, επομένως το CLI δεν διαθέτει επιλογή --map.
Σάρωση περιεχομένου
Τα tw::generate() και TailwindCompiler::generate() διαβάζουν ονόματα κλάσεων μόνο από τα γνωρίσματα class και className. Για ονόματα κλάσεων που βρίσκονται σε συμβολοσειρές PHP ή JavaScript, χρησιμοποιήστε τα tw::extractCandidatesFromStrings() ή @source inline("…"). Οι μορφές διαδρομής του @source αγνοούνται από το API και λαμβάνονται υπόψη μόνο εν μέρει από το CLI (δείτε παρακάτω).
Γνωστά ζητήματα στην τρέχουσα έκδοση
| Περιοχή | Τρέχουσα συμπεριφορά | Ζήτημα |
|---|---|---|
CLI @source |
Οι διαδρομές και τα μοτίβα glob δεν εφαρμόζονται· αντί γι' αυτά γίνεται σάρωση του καταλόγου του αρχείου εισόδου και το @source not δεν αποκλείει τίποτα. Δείτε Τι σαρώνει το CLI |
#8 |
CLI --optimize |
Εκτελεί ελαχιστοποίηση, όπως το --minify |
#9 |
| Μεγάλες επιλογές CLI | Το --input file.css (με διαχωρισμό διαστήματος) αγνοείται· χρησιμοποιήστε το --input=file.css ή το -i file.css |
#13 |
| Παραλλαγές προσθέτων | Οι παραλλαγές addVariant()/matchVariant() και οι τροποποιητές τυπογραφικών στοιχείων (prose-headings: …) μεταγλωττίζονται χωρίς τον επιλογέα τους |
#10 |
Μείγματα @apply |
Το @apply --my-mixin; απορρίπτεται αντί να προωθείται |
#12 |
| Εισαγωγές αναφοράς | Η έξοδος είναι κενή όταν μια εισαγωγή αναφοράς προηγείται της εισαγωγής utilities· το @import "tailwindcss" reference δεν έχει αποτέλεσμα |
#14 |
Σημειώσεις αναβάθμισης
1.7.0
- Η έξοδος αλλάζει σε επίπεδο byte σε σύγκριση με το 1.6.x, ενώ παραμένει λειτουργικά ισοδύναμη με την αναφορά TailwindCSS v4.3.3. Ορισμένες ορατές αλλαγές:
- Πολλαπλασιαστές διαστημάτων: το
p-1παράγειpadding: var(--spacing)αντί γιαcalc(), ενώ ο πολλαπλασιαστής0παράγει μήκος μηδέν χωρίς μονάδα. - Τα κλάσματα μετατρέπονται σε ποσοστά: το
w-1/2παράγειwidth: 50%. - Χρώματα: η φωτεινότητα των
oklch()/oklab()σειριοποιείται ως ποσοστό (oklch(62.3% .214 259.815)), ενώ ταwhiteκαιblackσυντομεύονται σε#fffκαι#000. - Τα ψευδοστοιχεία CSS2 σειριοποιούνται με μία άνω και κάτω τελεία (
:before,:after,:first-letter,:first-line). - Οι ένθετοι κανόνες
@media/@supports/@containerισοπεδώνονται επιτόπου, με τη σειρά του πηγαίου κώδικα, αντί να μεταφέρονται στο τέλος· οι δηλώσεις αναδιατάσσονται σύμφωνα με τη σειρά του lightningcss και αφαιρούνται οι επισκιασμένες διπλές δηλώσεις.
- Πολλαπλασιαστές διαστημάτων: το
- Οι προσωρινές μνήμες με κλειδί την έξοδο ακυρώνονται μία φορά. Η προσωρινή μνήμη αρχείων του
tw::generate()δεν περιλαμβάνει την έκδοση TailwindPHP στο κλειδί της, οπότε μετά την αναβάθμιση εκτελέστε τοtw::clearCache()(ή τον κατάλογο που περάσατε ωςcache). Η προσωρινή μνήμη κατάστασης μεταγλωττιστή ακυρώνεται αυτόματα. - Νέο:
@variantσε σύνταξη CSS, μείγματα CSS στο@apply,@media referenceκαι@import "…" reference, πλήρης μηχανή--value()/--modifier()για λειτουργικά@utility, αυστηρότερη επικύρωση ονομάτων@utilityκαι η επιλογήpolyfillsτουtw::compile().
1.6.1
- Νέο: το βοηθητικό
container(width: 100%συν έναmax-widthανά σημείο διακοπής). - Οι συνδυασμένες μεταβλητές
--tw-*(μετατόπιση, κλίμακα, περιστροφή, λοξή παραμόρφωση, φίλτρα και άλλα) δηλώνονται πλέον στο@property, ώστε τα φύλλα στυλ να αποκτούν αυτούς τους κανόνες@propertyκαι μετασχηματισμοί όπως τοtranslate-x-7να εφαρμόζονται στο πρόγραμμα περιήγησης.
1.6.0
- Νέο: η μόνιμη προσωρινή μνήμη κατάστασης μεταγλωττιστή (
stateCacheFileσεtw::compile()καιTailwindCompiler,StateCache\compileCssCached()) και οι διακριτές συναρτήσειςparseCssState()/finalizeCssState()/compileParsed(). Οι υπάρχουσες κλήσεις λειτουργούν ακριβώς όπως πριν.
1.5.0
- Οι υποκλάσεις του
TailwindCompilerπου παρακάμπτουν τοgenerate()ή τοcss()πρέπει να προσθέσουν την προαιρετική παράμετροbool $minify = false· το PHP απορρίπτει παρακάμψεις που παραλείπουν προαιρετική παράμετρο της γονικής κλάσης. - Η ελαχιστοποιημένη έξοδος προέρχεται από τον σειριοποιητή, επομένως τα ελαχιστοποιημένα byte διαφέρουν ελαφρώς από το 1.4.x (οι προσωρινές μνήμες με κλειδί την ελαχιστοποιημένη έξοδο ακυρώνονται μία φορά).
- Νέο: τα
generateExact()καιcssExact()για CSS ανά σελίδα από έναν μεταγλωττιστή μεγάλης διάρκειας ζωής.