Uyumluluk ve Yükseltme
Bu sayfa; yükseltme yapmadan veya çıktının tam eşleşmesine güvenmeden önce bilmeniz gerekenleri bir araya getirir: çalışma zamanı gereksinimleri, uyarlamanın hangi TailwindCSS sürümünü izlediği, TailwindPHP'in TailwindCSS'den bilerek ayrıldığı noktalar ve her sürüme ait notlar. Tüm geçmiş CHANGELOG.md içinde yer alır.
Gereksinimler
- PHP 8.2 veya üzeri. Test paketi PHP 8.2, 8.3 ve 8.4 sürümlerinde çalışır.
ctypevembstringuzantıları. Derleyici,ctype_*vemb_chr()işlevlerini çağırır. Bunlar çoğu PHP derlemesiyle ve resmî Docker imajlarıyla birlikte gelir; ancakcomposer.jsonhenüz bunları bildirmez (#11). Bu nedenle bunlar olmadan yapılan bir derlemede paket kurulur, ancak çalışma zamanında başarısız olur.- İsteğe bağlı:
pcntl. CLI'ün--watchmodu,SIGINT/SIGTERMdurumunda düzgün biçimde durabilir. Bu olmadan da izleme modu çalışır.
Node.js, FFI veya yerel ikili dosyalar kullanılmaz.
İzlenen TailwindCSS sürümü
1.7.0 sürümü TailwindCSS v4.3.3 sürümünü izler. Yukarı akış deposu, reference/tailwindcss içinde git alt modülü olarak belirli bir sürüme sabitlenmiştir; test paketleri bu sabitlenmiş çalışma ağacından çıkarılır ve 4,427 testleri her gönderimde çalışır (bkz. Performans ve test). Uyarlanan eklentiler @tailwindcss/typography ve @tailwindcss/forms'i, sınıf yardımcı programları ise her biri aynı şekilde sabitlenmiş olan clsx, tailwind-merge ve CVA'yı izler.
TailwindCSS ile bilinen farklar
Serileştirme ayrıntıları
Oluşturulan CSS, referans test paketleriyle eşleşir. TailwindCSS CLI çıktısındaki bazı serileştirme ayrıntıları farklıdır; ancak bunların hiçbiri basamaklandırmayı değiştirmez:
- Üretici önekleri: başvurunun hem yazılmış
-webkit-*satırını hem de oluşturulan bir satırı verdiği yerde TailwindPHP tek satır üretir. - Alt düzeye dönüştürülen sözde öğeler (
::file-selector-button,::-webkit-datetime-edit-*), her sözde öğe için ayrı kurallara bölünmek yerine yazıldıkları seçici listelerinde kalır. - Tek tırnakla yazılmış dizeler tek tırnaklı kalır (
'Segoe UI'); çift tırnağa dönüştürülmez. - Birlikte bulunan uzun biçimli özellikler kısaltılmış bir özelliğe dönüştürülmez (Tailwind'in kendi çıktısı buna ihtiyaç duymaz).
.p-0, başvurunun CLI olarakpadding: 0ürettiği yerdepadding: 0pxbiçimini korur; çünkü çıkarılan test derlemi0pxbiçimini sabitler. Küçültücü bunu0olarak kısaltır.
Dahil olmayanlar
TailwindPHP, CSS derleyicisidir. Tailwind ekosisteminin düzenleyici araçlarını (IntelliSense, otomatik tamamlama, sınıf sıralama) ve kaynak haritalarını içermez; bu nedenle CLI için --map seçeneği yoktur.
İçerik tarama
tw::generate() ve TailwindCompiler::generate() sınıf adlarını yalnızca class ve className özniteliklerinden okur. PHP veya JavaScript dizelerinde tutulan sınıf adları için tw::extractCandidatesFromStrings() ya da @source inline("…") kullanın. @source yol biçimleri API tarafından yok sayılır, CLI tarafından ise yalnızca kısmen dikkate alınır (aşağıya bakın).
Mevcut sürümdeki bilinen sorunlar
| Alan | Mevcut davranış | Sorun |
|---|---|---|
CLI @source |
Yollar ve glob kalıpları uygulanmaz; bunun yerine girdi dosyasının dizini taranır ve @source not hiçbir şeyi hariç tutmaz. Bkz. CLI'in taradığı alanlar |
#8 |
CLI --optimize |
--minify gibi küçültme yapar |
#9 |
| CLI uzun seçenekler | --input file.css (boşlukla ayrılmış) yok sayılır; --input=file.css veya -i file.css kullanın |
#13 |
| Eklenti varyantları | addVariant()/matchVariant() varyantları ve tipografi öğesi değiştiricileri (prose-headings: …), seçicileri olmadan derlenir |
#10 |
@apply karışımları |
@apply --my-mixin; aktarılmak yerine kaldırılır |
#12 |
| Başvuru içe aktarmaları | Yardımcı sınıflar içe aktarımından önce bir başvuru içe aktarımı gelirse çıktı boş olur; @import "tailwindcss" reference etkisizdir |
#14 |
Yükseltme notları
1.7.0
- Çıktı, 1.6.x ile bayt düzeyinde farklılık gösterir ancak işlevsel olarak eşdeğer olan TailwindCSS v4.3.3 referansıyla aynı kalır. Görülebilen değişikliklerden bazıları:
- Boşluk çarpanları:
p-1,calc()yerinepadding: var(--spacing)üretir;0çarpanı ise birimsiz sıfır uzunluk üretir. - Kesirler yüzdeye dönüştürülür:
w-1/2,width: 50%üretir. - Renkler:
oklch()/oklab()açıklık değeri yüzde olarak serileştirilir (oklch(62.3% .214 259.815));whiteveblackkısaltılarak#fffve#000olur. - CSS2 sözde öğeleri tek iki noktayla serileştirilir (
:before,:after,:first-letter,:first-line). - İç içe
@media/@supports/@containerkuralları sona taşınmak yerine kaynak sırasına göre bulundukları yerde düzleştirilir; bildirimler lightningcss'in sıralamasına göre yeniden düzenlenir ve gölgelenen yinelenen bildirimler kaldırılır.
- Boşluk çarpanları:
- Çıktıya göre anahtarlanan önbellekler bir kez geçersiz kalır.
tw::generate()dosya önbelleğinin anahtarında TailwindPHP sürümü bulunmaz; bu nedenle yükseltmeden sonratw::clearCache()komutunu (veyacacheolarak verdiğiniz dizini) çalıştırın. derleyici durumu önbelleği kendini geçersiz kılar. - Yeni: yazar CSS'da
@variant,@apply'de CSS mixin'leri,@media referenceve@import "…" reference, işlevsel@utilityiçin tam--value()/--modifier()altyapısı, daha sıkı@utilityadı doğrulaması vetw::compile()içinpolyfillsseçeneği.
1.6.1
- Yeni:
containeryardımcı programı (width: 100%ve her kesme noktası için birmax-width). - Birleştirilmiş
--tw-*değişkenleri (translate, scale, rotate, skew, filtreler ve diğerleri) artık@propertyile kaydediliyor; böylece stil sayfalarına bu@propertykuralları ekleniyor vetranslate-x-7gibi dönüşümler tarayıcıda etkili oluyor.
1.6.0
- Yeni: kalıcı derleyici durumu önbelleği (
tw::compile()veTailwindCompilerüzerindestateCacheFile,StateCache\compileCssCached()) ve ayrıştırılmışparseCssState()/finalizeCssState()/compileParsed()işlevleri. Mevcut çağrılar tam olarak eskisi gibi çalışır.
1.5.0
TailwindCompileralt sınıflarıgenerate()veyacss()yöntemlerini geçersiz kılıyorsa isteğe bağlıbool $minify = falseparametresini eklemelidir; PHP, üst sınıfın isteğe bağlı parametresini kaldıran geçersiz kılmaları reddeder.- Küçültülmüş çıktı serileştiriciden gelir; bu nedenle küçültülmüş baytlar 1.4.x değerinden biraz farklıdır (küçültülmüş çıktıya göre anahtarlanan önbellekler bir kez geçersiz kalır).
- Yeni: uzun ömürlü tek bir derleyiciden sayfa başına CSS için
generateExact()vecssExact().