TailwindPHP
TailwindCSS 4.x'in PHP uyarlaması. Node.js ve derleme adımı olmadan PHP ile Tailwind yardımcı CSS üretin. cn(), tailwind-merge, CVA, tipografi ve form eklentileri ve bir CLI ile gelir.
composer require tailwindphp/tailwindphpEn son sürüm 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'Uygulamada
İşaretlemeyi ve isteğe bağlı girdi CSS değerini tek bir PHP çağrısına verin, stil sayfasını alın.
PHP üzerinden CSS oluşturun
tw::generate(), sınıf adlarını bulmak için işaretlemeyi tarar ve yalnızca bu sınıfların ihtiyaç duyduğu CSS öğelerini döndürür. İkinci bağımsız değişken girdi CSS değerini alır; böylece @theme içinde tanımlanan bir renk yardımcı sınıfa dönüşür.
cn() sınıf dizgelerini oluşturur ve Tailwind çakışmalarını çözümler; böylece çakışan yardımcı sınıflardan sonuncusu kazanır.
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'Saf PHP
Node.js gerekmez, derleme adımı da yoktur. Standart mbstring ve ctype uzantılarıyla PHP 8.2+ üzerinde çalışır. composer require komutunu çalıştırın, başlayın.
TailwindCSS v4.3.3 sürümünü izler
Aynı yardımcı sınıflar, varyantlar ve yönergelerle Tailwind v4.3.3 taşınmış sürümüdür. Tailwind'den bilinen farklar belgelenmiştir.
4,400+ test
Çıktı, TypeScript kaynağından çıkarılan ve her push'ta yeniden çalıştırılan TailwindCSS test paketleriyle doğrulanır.
Tüm yardımcı sınıflar ve varyantlar
Eksiksiz yardımcı sınıf kümesi ve tüm varyantlar: hover, focus, duyarlı tasarım, koyu mod, kapsayıcı sorguları ve keyfi değerler.
CSS yönergeleri
@import, @theme, @apply, @utility, @custom-variant, @layer, @plugin ve @source, PHP içinde ayrıştırılır ve çözümlenir.
Çalışma zamanında oluşturma
HTML, veritabanı içeriği veya şablon değişkenlerinden anında yardımcı CSS kodu oluşturun. Derleme adımı gerekmez.
Her şey dahil
cn(), merge(), join() ve variants(): clsx, tailwind-merge ve CVA, ek paket gerektirmeden PHP'e taşınmıştır.
Eklentiler
@tailwindcss/typography ve @tailwindcss/forms PHP'e taşınmıştır; ayrıca kendi yardımcı sınıflarınız ve bileşenleriniz için bir PHP eklenti API vardır.
CLI
bin/tailwindphp, -i, -o, --watch ve --minify seçenekleriyle bir girdi CSS dosyasından stil sayfası oluşturur.
Temayı inceleyin
Herhangi bir sınıfın ham ve hesaplanmış özellik değerlerini, renklerini, kesme noktalarını ve aralıklarını doğrudan PHP üzerinden okuyun.
Önbellek ve küçültücü
Yerleşik CSS küçültücü ve TTL içeren dosya önbelleği, yinelenen derlemeleri hızlandırır ve çıktıyı yalın tutar.
WordPress ve PHP çerçeveleri
Node.js kullanmadan Tailwind tabanlı temalar ve eklentiler yayınlayın. TailwindPHP tek bir Composer bağımlılığıdır.
TailwindPHP neden tercih edilmeli
Üretimde tek çalışma zamanı
PHP projesi Tailwind'i benimsediğinde genellikle Node.js'i, bir npm kurulumunu ve CI ile Docker içinde bir derleme adımını da üstlenir. Bunun yerine TailwindPHP, CSS kodunu PHP sürecinin içinde derler.
Çalışma zamanında bilinen içerikler için CSS
Veritabanından, kullanıcı girdisinden veya şablon değişkeninden gelen işaretleme doğrudan tw::generate()'e verilebilir; araç yalnızca sınıflarının ihtiyaç duyduğu CSS öğelerini döndürür.
Sabitlenmiş bir Tailwind sürümüne göre denetlendi
Test senaryoları, depoda sabitlenmiş Tailwind kaynağından çıkarılır ve PHP çıktısına karşı çalıştırılır; böylece sürüm kayması CI'ı başarısız kılar. 1.7.0 sürümü, Tailwind v4.3.3 ile 4,427 test kullanılarak denetlendi.
Tek derleyiciden sayfa başına CSS
Temayı tw::compile() ile bir kez derleyin, ardından her sayfa için generateExact() çağrısını yapın. Her çağrı, temayı yeniden ayrıştırmadan o sayfanın soğuk bir tw::generate() işleminin üreteceği sonucu döndürür.
Karşılaştırma
Tailwind Labs, Tailwind CSS oluşturmak için kendi yöntemlerini sunar. TailwindPHP bu yöntemlerden şu şekilde ayrılır.
| Araç | Şu konularda başarılı | TailwindPHP ile farkı |
|---|---|---|
| Tailwind CLI (@tailwindcss/cli) | Şu konularda başarılıTailwind'in npm üzerinden kurulan kendi komut satırı aracı. HTML dosyalarınızı, bileşenlerinizi ve şablonlarınızı tarayarak sınıf adlarını bulur ve eşleşen stilleri statik bir CSS dosyasına yazar. | TailwindPHP ile farkıTailwindPHP, Node.js veya npm kurulumu gerektirmeden PHP içinde derlenir. Sabit bir Tailwind sürümünü izler (1.7.0 içinde v4.3.3); kendi karşılaştırmalı testi ise TypeScript orijinalinin düşük seviyeli işlemleri daha hızlı yürüttüğünü gösterir. |
| Tailwind bağımsız CLI | Şu konularda başarılıBağımsız bir yürütülebilir dosya olarak Tailwind CLI; Node.js kurmadan kullanmak isteyen projeler için. | TailwindPHP ile farkıYürütülebilir dosya, derleme adımı olarak çalışan ayrı bir ikilidir. TailwindPHP, PHP kodunuzun çağırdığı bir Composer paketidir; bu nedenle istek sırasında veritabanı içeriğinden veya şablon değişkenlerinden CSS de oluşturabilir. |
| Tailwind Play CDN | Şu konularda başarılıTailwind'i tarayıcıda çalıştıran bir betik etiketi; derleme adımı olmadan denemek için. Tailwind belgeleri, bunun geliştirme için tasarlandığını ve üretimde kullanılmasının amaçlanmadığını belirtir. | TailwindPHP ile farkıTailwindPHP de derleme adımı gerektirmez; ancak CSS kodunu sunucuda PHP içinde oluşturur ve örneğin bir stil sayfasına yazmak üzere dizge olarak döndürür. |
Kaynaklar, işaretli
Sorular ve yanıtlar
TailwindPHP dokümantasyonundan kısa yanıtlar.
1.7.0 sürümü, Tailwind CSS v4.3.3 sürümünü izler. Test paketleri bu sürüme göre yeniden çıkarılmıştır.
Çıktı, Tailwind'in kendi test dosyalarından çıkarılan senaryolara göre test edilir. 1.7.0 değişiklik günlüğünde birkaç serileştirme farkı kaydedilmiştir; örneğin .p-0, başvuru CLI çıktısı padding: 0 değerini üretirken padding: 0px değerini korur.
Hayır. Eklentiler PHP: tipografi ve formlar eklentileri taşınmıştır; kendi eklentinizi PHP eklenti API'sine göre yazıp registerPlugin() ile kaydedebilirsiniz. Kaydedilmemiş bir @plugin adı hata verir.
Projenin PHP 8.4.5 ve bir Apple M1 üzerinde yaptığı karşılaştırmalı testte, tam sayfa oluşturma sayfa başına yaklaşık 14 ms sürdü. Yinelenen girdilerde dosya önbelleği derlemeyi atlar; uzun ömürlü bir derleyicide generateExact() ayrıştırılmış temayı yeniden kullanır.
Hayır. IntelliSense, otomatik tamamlama, sınıf sıralama ve kaynak eşlemeleri özellikle kapsam dışında bırakılmıştır. TailwindPHP yalnızca CSS oluşturur.
ctype ve mbstring uzantılarıyla birlikte PHP 8.2 veya üzeri gerekir. composer.json, PHP sürümünü belirtir ve CI test paketini PHP 8.2, 8.3 ve 8.4 üzerinde çalıştırır.
Paketi Composer ile kurun ve PHP üzerinden ilk stil sayfanızı oluşturmak için başlangıç kılavuzunu izleyin.