Selamlar dijital topluluk mimarları ve yapay zeka geliştiricileri,
Modern web dünyasında, Vercel’in o kusursuz, pürüzsüz UI/UX hissini veren, Flarum mimarisinden ilham alan gelişmiş forum yapıları inşa etmek artık standart haline geldi. Özellikle Türkiye pazarında, yapay zeka meraklılarını veya spesifik bir niş kitleyi bir araya getirecek, yüksek etkileşimli bir dijital topluluk yaratmayı hedefliyorsanız; hız, asenkron çalışma ve temiz kod vazgeçilmezinizdir.
Ancak Flarum, arka planda Laravel bileşenlerini, ön yüzde ise React yerine Mithril.js kullanan oldukça spesifik bir mimariye sahiptir. Yapay zekaya sadece “Bana Flarum için eklenti yaz” derseniz, büyük ihtimalle size React kodları verecek veya Flarum’un Extend API’sini tamamen hiçe sayan, sistemi kilitleyecek hatalı kodlar üretecektir.
Arama motorlarının temiz kod hiyerarşisini ve site hızını doğrudan kalite (E-E-A-T) sinyali olarak gördüğü bir denklemde, sıfır hatayla çalışan, Next.js hissiyatı veren modern Flarum eklentileri (extensions) yazmanızı sağlayacak 7 master promptu aşağıda paylaşıyorum.
—
🚀 Kusursuz Flarum Eklentisi Yazan 7 Master Prompt
1. Temel İskelet ve extend.php Mimarı
“Sen Flarum çekirdek (core) mimarisine ve Mithril.js yapısına tam hakim kıdemli bir yazılım geliştiricisisin. [Eklentinin Amacı: Örn, kullanıcıların AI promptlarını paylaşabileceği özel bir dizin] işlevini yerine getirecek ‘OyzTech/PromptDirectory’ adında bir Flarum eklentisi geliştiriyorum. Bana kodları yazmadan önce; frontend (admin ve forum), backend klasör yapısını, composer.json gereksinimlerini ve Flarum’un Extender sınıflarını (Routes, Frontend, Locales vb.) barındıran temel extend.php dosyasının kusursuz iskeletini oluştur.”
2. Vercel Stili Mithril.js UI Bileşeni (Frontend)
“Flarum’un frontend kısmında, konuların listelendiği sayfanın (DiscussionList) en üstüne yeni bir Mithril.js bileşeni (Component) eklemek istiyorum. Bu bileşen, Vercel’in UI/UX stiline uygun, minimalist, hafif gölgeli (box-shadow) ve yuvarlak hatlı bir ‘Öne Çıkanlar’ kartı olacak. Bana app.initializers.add kullanarak bu bileşeni DOM’a nasıl inject edeceğimi ve Mithril’in view() ile oninit() fonksiyonlarını içeren, JSX benzeri temiz kod bloğunu yaz. Lütfen React değil, saf Flarum/Mithril API’sini kullan.”
3. Güvenli API Uç Noktası ve Controller (Laravel Backend)
“Eklentim için frontend’den asenkron (AJAX/Fetch) veri çekecek yeni bir REST API uç noktası (endpoint) oluşturmam gerekiyor. Laravel’in AbstractSerializeController sınıfını genişleten (extend), yetkilendirme (authorization) kontrolü yapan assertRegistered metodunu barındıran ve veritabanındaki [İlgili Veri] modelini JSON olarak döndüren güvenli bir Controller kodu yaz. Ayrıca bu Controller’ı extend.php dosyasında (new Extend\Routes('api')) ile nasıl bağlayacağımı göster.”
4. Veritabanı Migration ve Eloquent Model Entegrasyonu
“Flarum veritabanına [Tablo Adı, Örn: ai_prompts] adında yeni bir tablo eklemek için Laravel Schema Builder kullanan hatasız bir migration (up ve down fonksiyonlarıyla) dosyası yaz. Ardından, bu tabloyla iletişim kuracak, Flarum’un AbstractModel sınıfını miras alan ve XF:User (veya Flarum\User\User) tablosuyla ‘One-to-Many’ (Bir-Çok) ilişkisini tanımlayan Eloquent Model kodunu oluştur.”
5. Yönetici Paneli (Admin) Ayarları ve Konfigürasyon
“Geliştirdiğim bu eklentinin ayarlarını Flarum Admin panelinden yönetmek istiyorum. Flarum 1.x sürümlerinin yerleşik ExtensionPage API’sini kullanarak admin panelinde yeni bir sekme (tab) oluşturan ve içine bir aç/kapat (Switch) butonu ile bir metin giriş alanı (StringItem) ekleyen Mithril.js kodunu yaz. Bu ayarların veritabanına (settings tablosuna) otomatik kaydedilmesini sağlayan frontend kurgusunu eksiksiz belirt.”
6. SEO ve Dinamik Meta Tag (Head) Entegrasyonu
“Eklentimin oluşturduğu yeni sayfaların Google tarafından kusursuz taranması (Core Web Vitals ve LSI uyumu) için SEO optimizasyonu yapmam gerekiyor. Flarum’un Document sınıfını kullanarak <head> etiketleri arasına dinamik olarak Canonical URL, Open Graph (OG) görselleri ve dinamik Meta Description ekleyen backend Extender kodunu yaz. Bu kodun sadece benim özel rotamda (route) çalıştığından emin ol.”
7. Event Listener (Olay Dinleyicisi) ile Çekirdeğe Müdahale
“Kullanıcı forumda yeni bir mesaj (Post) paylaştığında, arka planda tetiklenecek bir Event Listener (Olay Dinleyicisi) yazmanı istiyorum. Flarum’un PostWasPosted olayını dinleyen, mesajın içeriğini alıp [Belirli Bir İşlem, Örn: İçindeki belirli kelimeleri filtreleyen veya API’ye gönderen] ve sistemi kilitlememek için try-catch bloklarıyla korunan temiz bir PHP Sınıfı (Listener) oluştur.”
—
💡 Mimari Tavsiyeler ve AI Footprint’i Gizleme Sanatı
Flarum’un en güzel yanı “Extensibility” (Genişletilebilirlik) felsefesidir. Kodun çekirdeğe dokunmadan, sadece kancalarla (hooks) çalışması gerekir. Yapay zeka çıktılarını doğrudan sitenize entegre etmeden önce şu güvenlik adımlarını uygulayın:
Ollama ile Yerel Geliştirme: Flarum gibi spesifik altyapılarda API anahtarlarınızı, veritabanı yapınızı veya benzersiz UI fikirlerinizi buluta atmak yerine; LM Studio veya Ollama üzerinden bilgisayarınızda çalışan lokal modellerle kodları test edin. Veri mahremiyeti, kendi topluluğunuzu kurarken en kritik adımdır.
Mithril Unutkanlığına Dikkat: AI modelleri genellikle kodun ortasında Mithril’den vazgeçip React Hooks (useState, useEffect) yazmaya başlayabilir. Kodu incelerken m() fonksiyonlarının doğru kullanıldığından emin olun.
Benzersiz İsimlendirmeler (Naming Conventions): AI’ın ürettiği CustomComponent veya HandleData gibi ruhsuz isimlendirmeleri kendi markanıza göre değiştirin. Kod mimarisindeki bu “insani kusurlar”, projeyi devralan diğer geliştiriciler için çok daha okunabilir ve organik bir yapı sunar.
Flarum’un hafifliği ile Vercel’in modern tasarım çizgisini birleştirmek, geleceğin topluluk scriptlerinin temelini oluşturuyor. Kodlarınız temiz, derlemeleriniz (npm run build) hatasız olsun!