Sistem mimarisi konusunda tecrübeli bir yazılımcı olarak, karmaşık çok okullu sistemler, kurumsal düzeyde SaaS platformları ve yüksek hacimli e-ticaret motorları geliştirme sürecim boyunca karşılaştığım en önemli engellerden biri, “Paket Tuzağı.” oldu. Mükemmel araçlar kullanıyor olsanız bile, bu ölçeklerde çalışmak her zaman zorluklar sundu.
Bir özelliğe ihtiyacınız var, bu yüzden bir paket yüklüyorsunuz. Ardından on tane daha. Birdenbire, uygulamanız 30’dan fazla tedarikçi bağımlılığına bağlı bir kart evi haline geliyor ve her birinin “siyah kutu” mantığı ve versiyonlama borcu var. Benim, kaynak kodunun tam mülkiyetini kaybetmeden kurumsal UIs’leri dakikalar içinde oluşturmanın bir yoluna ihtiyacım vardı.
Bu yüzden Laravel Fabric‘i geliştirdim.
👻 “Hayalet İskele” Felsefesi
Laravel Fabric bir çalışma zamanında çalışan kütüphane değildir; bu bir Metaprogramlama Motoru. Yüksek kaliteli, yerel Laravel kodu üreten bir geliştirme zamanında fabrika gibi çalışır ve sonra aradan çekilir.
Biz buna Hayalet İskele diyoruz.
Geleneksel geliştirme yönteminde, seçim yapmanız gereken iki yol var:
- Manuel Çalışma: Yüksek kontrol sağlar, ama haftalar alır.
- Paket Bağımlılığı: Hızlıdır, ama kontrolü kaybettirir ve çalışma zamanında yük getirir.
Fabric, üçüncü bir yol sunar: Şekillendir ve Ayrıl.
- Fabric‘i bir geliştirme bağımlılığı olarak yükleyin.
- Tüm kaynakları (Tablolar, Editörler, Görünüm şablonları, Testler) saniyeler içinde oluşturun.
- Paketi kaldırın. Uygulamanız tamamen işlevsel kalır çünkü üretilen her satır, yerel, temiz Laravel ve Livewire’dır.
🏗️ İç Mimari
Bu otonomi seviyesine ulaşmak için Fabric, çeşitli uzman motorlar aracılığıyla çalışır. Geleneksel bir CRUD oluşturucusunun şablondaki metinleri değiştirmesinin aksine, Fabric Derin Şema İçgörü sağlar.
graph TD
DB[(Database Schema)] --> Loom[🧶 The Loom]
Loom --> Analysis{Context Analysis}
Analysis --> Lazarus[🏥 Lazarus: Self-Healing]
Analysis --> Alchemist[⚗️ The Alchemist: UI Transmutation]
Analysis --> Security[🛡️ The Jail: RBAC/ACL]
Lazarus --> Code[Native Laravel Code]
Alchemist --> Code
Security --> Code
Code --> Livewire[Livewire Components]
Code --> Blade[Blade Templates]
Code --> Tests[Pest/PHPUnit Tests]
🔪 “Paket Katili” Araçları
Performans ve sürdürülebilirlikteki en büyük kayba “tedarikçi şişmesi” sebep olmaktadır. Fabric, 30’dan fazla standart üçüncü taraf bağımlılığı yerine, mantığı doğrudan projenize yerleştirecek şekilde tasarlanmış bir Paket Katilidir.
| Kategori | Yerel Değiştirme | Amaç |
|---|---|---|
| Güvenlik | Yerel RBAC & ACL | spatie/laravel-permission‘ı yerel Gate mantığı ile değiştirir. |
| Denetim | Denetlenebilir Trait | spatie/laravel-activitylog‘ı yüksek kaliteli geçmiş için değiştirir. |
| Medya | Lean-Media İşleyici | spatie/laravel-medialibrary‘ı %90 kullanım durumu için değiştirir. |
| Veri | Atomik İhraçlar | maatwebsite/excel‘ı yerel akış tabanlı ihracatlarla değiştirir. |
| SEO | Meta Yönetici | Yerel başlık, OpenGraph ve site haritası üretimi. |
| UI | Fabric Forge | Ağır çalışma zamanı UI kütüphanelerini yerel Tailwind bileşenleri ile değiştirir. |
Bu özellikleri yerel olarak oluşturmakla, bu paketlerden birinin bir Laravel ana sürüm güncellemesini geciktirdiğinde oluşan “Güncelleme Cehennemi”ni ortadan kaldırıyorsunuz.
Derin Analiz: Temel Teknik Motorlar
🧶 The Loom: Beşeri Beyin
The Loom, sadece sütunları görmekle kalmaz; ilişkileri anlamaya çalışır. Polimorfik ilişkileri, karmaşık çoktan çoğa pivotları ve hatta alışılmadık adlandırma şemalarını algılar. Ardından, bu anlayışı UI’ye yansıtarak, yabancı anahtarlar için otomatik olarak aranabilir seçim menüleri ve iç içe ilişki tabloları oluşturur.
🏥 Lazarus: Kendini İyileştiren Mimar
Hepimiz bu durumla karşılaştık: Bir kaynak oluşturuyorsunuz, iki gün kişiselleştiriyorsunuz ve ardından müşteri yeni bir alan istiyor. Geleneksel oluşturucularda, ya alanı elle eklemeniz gerekir (sıkıcı) ya da yeniden oluşturup işlerinizi kaybedersiniz (felaket).
Lazarus cerrahi kod tamiri yapar. Mevcut özelleştirilmiş dosyalarınızı okur, ekleme için güvenli bölgeleri tanımlar ve yeni şema gereksinimlerini kendi özelleştirilmiş mantığınıza dokunmadan ekler.
⚗️ The Alchemist: Estetik Dönüşüm
Fabric tasarımından bağımsızdır. The Alchemist, “Akıllı Stüpler” adlı soyutlanmış UI tanımlarını alır ve seçeceğiniz çerçeveye dönüştürür. İster Preline, DaisyUI, Float UI veya Shadcn kullanıyor olun, üretilen kod, o belirli sistem için elle yazılmış gibi görünecektir.
🕸️ Nexus: Matrisi Görselleştirmek
Karmaşık uygulamalar büyüdükçe, mantığı anlamak zorlaşır. Nexus, tüm uygulama mimarinizin canlı, etkileşimli bir ilişki grafiğini oluşturur. Bu sadece bir diyagram değildir; model bağlantılarınız için görsel bir hata ayıklayıcıdır.
🛡️ Güvenlik ve Performans
Fabric, yüksek riskli ortamlara göre tasarlandı.
- The Jail (Çoklu Kiracı): Otomatik olarak global kapsam ve kiracı duyarlı özellikler oluşturur. Verilerin, sadece UI seviyesinde değil, veritabanı seviyesinde de sızdırılması imkansızdır.
- Anonymizer (Kişisel Verilerin Gizlenmesi): Hassas üretim verileri ile çalışan geliştiriciler için, Anonymizer motoru, “Sanitize Edilmiş Anlık Görüntüler” oluşturmanıza izin verir; kişisel verilerin temizlendiği, üretimle gerçekçi verilerin geliştirme sırasında GDPR ve HIPAA uyumunu sağlamak için kullanılabilir.
- Adli Denetim: Denetimleri tek bir büyük tabloda depolayan paketlerin aksine, Fabric, arama için indekslenmiş ve optimize edilmiş, yüksek performanslı, model spesifik denetim izlerini oluşturabilir.
🚀 60 Saniyede Uygulama
Fabric terminal için optimize edilmiştir. IDE’sinde çalışan geliştiriciler için bir araçtır.
# 1. Geliştirme bağımlılığı olarak yükleyin
composer require clcbws/laravel-fabric --dev
# 2. Ortamınızın hazır olduğunu doğrulamak için Tanı Doktorunu çalıştırın
php artisan fabric:doctor
# 3. Tam bir kaynak oluşturun
# Bu model, migration, kontrolör, Livewire tablosu, form ve Pest testleri oluşturur
php artisan fabric:generate Project --all
# 4. (İsteğe bağlı) Mimarinizin görselleştirin
php artisan fabric:nexus
🏁 Gelecek: Sıfır Çalışma Zamanı, Sonsuz Kontrol
Laravel Fabric’in hedefi, geliştiriciyi görünmez kılmaktır. Kullanıcı, Fabric tarafından oluşturulmuş bir uygulamayla etkileşime girdiğinde, arka planda bir “framework” hissetmemelidir. Yerel, optimize edilmiş PHP 8.3 hızını ve Livewire 3’ün duyarlılığını hissetmelidir.
Geleceğe doğru, kod üretimi bir kısayol değil, bir standart olacaktır. “Paket Tuzağı” bir anı olacak ve geliştiriciler iş mantığını çözmekle, tedarikçi sürüm uyuşmazlıklarıyla savaşmak yerine zaman harcayacaktır.
Fabric, dokuma tezgahıdır. Uygulamanız ise bir halıdır.
🌐 Proje Kaynakları ve Dokümantasyon
[!TIP]
Katkıda bulunmak veya kaynağı keşfetmek ister misiniz?
Laravel Fabric GitHub adresini ziyaret edin veya Resmi Dokümantasyon‘a göz atın.
Kaynak: Orijinal Makale
- 👻 “Hayalet İskele” Felsefesi
- 🏗️ İç Mimari
- 🔪 “Paket Katili” Araçları
- Derin Analiz: Temel Teknik Motorlar
- 🧶 The Loom: Beşeri Beyin
- 🏥 Lazarus: Kendini İyileştiren Mimar
- ⚗️ The Alchemist: Estetik Dönüşüm
- 🕸️ Nexus: Matrisi Görselleştirmek
- 🛡️ Güvenlik ve Performans
- 🚀 60 Saniyede Uygulama
- 🏁 Gelecek: Sıfır Çalışma Zamanı, Sonsuz Kontrol


