Laravel’da View Katmanı üzerine 3 parçalık bu serinin 1. bölümü. Burada: Blade. Sonraki bölümlerde: Livewire ve Inertia.
“Blade? Hala mı kullanılıyor?”
“Blade? Hala mı kullanılıyor?”
Yeni bir projeyi açıyorsunuz, junior geliştirici omzunuzdan bakıyor, bir .blade.php görüyor ve “ne, React kullanmayacak mısın?” diyor.
HTML’i sunucuda render etmenin bir ayıp olduğu gibi bir izlenim var. 2026’da, pırıl pırıl JavaScript framework’leri varken, Blade kullananların kendilerini 2015’te tıkanmış gibi hissetmeleri yanlış.
O yüzden karşı bir soru yöneltmekte sakınca yok: Ürün listeleme ve bir form göstermek için 300kb JavaScript içeren bir SPA’ya gerçekten ihtiyacınız var mı? Çoğu projede, dürüst yanıt hayır.
Blade’in “sorunu”, o kadar basit ki “sıkıcı” olması
Blade’in “sorunu”, o kadar basit ki “sıkıcı” olması
Blade, kağıt üzerinde kimseyi etkilemez. O sadece değişken alır ve HTML döker:
@foreach ($produtos as $produto)
- {{ $produto->nome }} — R$ {{ $produto->preco }}
@endforeach
Build aşaması yok. node_modules 400MB yok. Hidrasyon yok, istemcide durum yok, “neden bileşenim 4 defa yeniden render edildi” sorusu yok. Yazıyorsunuz, F5’e basıyorsunuz, ekranınızda.
Ve bu “sıkıcılık” işin verimliliğidir. Bir içerik sitesi, bir yönetim paneli veya önümüzdeki hafta yayına çıkacak bir MVP için — Blade, bir SPA’nın iki gün süren yapılandırmasını, bir öğleden sonra içerisinde sunar.
Neredeyse kimsenin bilmediği bir detay: Blade runtime’da yok
Neredeyse kimsenin bilmediği bir detay: Blade runtime’da yok
Burada önemli bir nokta var.
Pek çok kişi, Blade’in her istekte “yorumlandığını” düşünür – yani o @foreach her biri sayfayı açtığında okunup, ayrıştırılıp çevriliyor sanır. Hayır.
Blade saf PHP’ye derlenir ve sonucu diske önbelleğe alır, storage/framework/views içinde. O güzelim {{ $produto->nome }}, derlenmiş dosyada şuna döner:
echo e($produto->nome); ?>
Yani: sayfa gerçekten çalıştığında, “Blade” çoktan gitmiş. Çalışan, hiçbir şablon motoru geçiş aşamasına sahip olmayan saf PHP’dir. Blade yavaş değil; istek geldiğinde o bile orada değil.
Ek olarak, e()‘ye dikkat edin: her {{ }} otomatik olarak PHP’nin htmlspecialchars fonksiyonundan geçer. Bu da demektir ki Blade, varsayılan olarak sizi XSS’den korur — belirgin bir güvenlik açığı yaratmak istiyorsanız (örneğin {!! !!} kullanarak) oradan çıkmanız gerekir. Ücretsiz güvenlik, siz istemeden.
Blade’in ön plana çıktığı (ve sıkıştığı) noktalar
Blade’in ön plana çıktığı (ve sıkıştığı) noktalar
Öne çıkıyor:
- İçerik ve SEO odaklı siteler – HTML sunucuda hazır, Google bunu sever.
- Yönetim panelleri ve dahili CRUD işlemleri.
- Hızla ayağa kaldırılması gereken MVP’ler ve prototipler.
- “Etkileşim” gerektiren her sayfa – form + bağlantı.
Sıkıştığı noktalar:
- Ekranın yeniden yüklenmeden tepki vermesi gerektiğinde: anlık güncellemeler, sürükle-bırak, anlık bildirimler.
Ve burada, internet üzerindeki tartışmayı ateşleyen karışıklık ortaya çıkıyor: insanlar, “Blade veya React” seçiminin var olduğunu düşünüyor. Aslında durum böyle değil. Gerçekte, Blade ve az miktarda Alpine.js kullanarak, insanların SPA’dan beklediği “etkileşimin” %80’ini halledebilirsiniz.
Diğer %20’si? İşte onların ağırlığına uygun çözümler geliyor — ve bunlar, sonraki iki bölümün konusu.
Hata: Blade’i çok erken terk etmek pahalıya patlıyor
Hata: Blade’i çok erken terk etmek pahalıya patlıyor
Klasik hata, Blade’i kullanmamaktır. Erken kullanımını bırakıp tam bir JS stack’e geçmektir, bu durum zorunluluk değil, gereksizlikten kaynaklanmaktadır.
Bir “20 satırlık bir görünüm” yerine, ayrı bir front-end ile, build ile, durumla, kendi rotasıyla API kurarak — sonunda Blade’in 3 dakikada göstereceği aynı tabloyu elde ediyorsunuz.
Adil bir ölçü: önce Blade ile başlayın ve acı gerçek hale gelene kadar katmanı yükseltmeyin. Zengin etkileşim, gerçek bir problemse — ama sorun geldiğinde bu problemi çözersiniz, anticipatory bir şeye ihtiyaç duymadan.
Sekmeyi kapatmadan önce
Sekmeyi kapatmadan önce
Son projenizdeki “SPA” için kaç ekranın, aslında Blade’in bir öğleden sonra içerisinde tamamlayabileceği, bir form ve bir tablodan ibaret olduğunu dürüstçe cevaplayın.
Aşağıda yorumlara dönün ve bana yazın. Ve eğer beğendiyseniz, devam edin – 2. bölümde Livewire’ı ele alacağım ve topluluğu ikiye bölen bir soruyu soracağım: şahane bir geçiş mi yoksa performans için bir zaman bombası mı? 👀
Kaynak: Orijinal Makale


