As a content provider sharing platform, users of our site at xentr.net are responsible for their own posts, according to Article 8 of Law No. 5651 and Article 125 of the Turkish Penal Code (T.C.K.). All legal complaints regarding XenTR.Net will be reviewed within 3 (three) days after contacting us via the provided contact link, in accordance with the relevant laws and regulations. Necessary actions will be taken, and the site administrators will provide the necessary information.
XenForo için farklı yaklaşımları ve bu konudaki öğrenme ve geliştirme çabalarını her zaman desteklemişimdir. Kodlarınızı üşenmedim inceledim. Bunun içinde size aşağıda bazı teknik...
XenForo için farklı yaklaşımları ve bu konudaki öğrenme ve geliştirme çabalarını her zaman desteklemişimdir. Kodlarınızı üşenmedim inceledim. Bunun içinde size aşağıda bazı teknik terimler ile bilgi vermek istedim.
Bir XenForo Geliştiricisi gözüyle bu kodu incelediğimde, bu yapının canlı bir forumda kullanılmasının sistemi çökertebilecek, performansı yerle bir edecek ve ileride çözülmesi imkansız bug'lara yol açabilecek ciddi mimari hatalar barındırdığını söylemeliyim.
XenForo, performans odaklı ve yüksek trafikli siteler için tasarlanmış devasa bir framework'tür. Bu tarz bir yaklaşımın dezavantajlarını ve XF mimarisine göre işin doğrusunu aşağıda detaylıca açıklıyorum.
Mevcut Kodunuzun XenForo Açısından Dezavantajları ve Kritik Hatalar
1. Performans Katliamı olarak görebiliriz.
buildRouteUrlmetodu, XenForo'da bir sayfa yüklenirken ekrana basılan her bir link için tekrar tekrar çalışır. Bir ana sayfada 50 konu, 100 kullanıcı profili linki varsa, bu fonksiyon saniyede yüzlerce kez tetiklenir.- Kodunuzda her üye linki oluşturulurken
- Üstüne karmaşık Regular Expression (
2. DDoS ve Yük Riskiinstanceof \XF\Entity\Userkontrolü yapılıyor, kullanıcının ikincil grupları (secondary_group_ids) virgülle ayrılıp (explode) dizi birleştirme (array_merge) yapılıyor.preg_replace) işlemleri uygulanıyor. Bu durum sayfa yüklenme sürelerinizi korkunç derecede uzatacaktır. XenForo, bu tür string işlemlerini minimumda tutmak için linkleri çok daha basit (regex)olmadan oluşturur.XenForo'da routeToController sisteme gelen her isteğin (URL'in) nereye gideceğine karar veren kapıdır.
3. Hardcoded (Gömmeli) Rota Listesi
Sistemin diğer sayfalarının etkilenmemesi için login, register gibi onlarca rotayı bir diziye manuel yazmışsınız. XenForo'nun mimarisi dinamiktir. Yarın sisteme XenForo Resource Manager (xfrm) veya Media Gallery (xfmg) kurduğunuzda, ya da herhangi bir eklenti (örn: shop/) kurduğunuzda, bu rotalar sizin
$corePrefixesdizinizde olmadığı için eklentiniz bunları Konu (Thread) sanıp yönlendirmeye çalışacak ve tüm eklentileriniz kırılacaktır.XenForo Mimarisine Göre Nasıl Olmalı?
Sizin yapmak istediğiniz URL estetiği işlemi, XenForo'nun çekirdek yapısını "
hackleyerek" (regex ile araya girerek) değil, XenForo'nun sunduğu yönlendirme (Routing) araçlarıyla yapılmalıdır.1. Prefixleri
XenForo admin panelinde Setup > Route filters (Rota Filtreleri) adında muazzam bir özellik vardır.
threads/rotasıkonu/veyac/gibi çok kısa bir yapıya kod yazmadan çevrilebilir.Route Matcher) yapısını bozar ve performans kaybı yaratır.Sonuç olarak; bu eklenti her sayfa yüklemesinde gereksiz sorgular ve karmaşık metin işlemleri yaparak sitenizin performansını ciddi şekilde düşüreceği ve ileride eklenti çakışmalarına (çökmelere) yol açacağı için kesinlikle kullanılmamalıdır. Bu tarz URL değişiklikleri kod yazarak değil, XenForo'nun kendi içindeki "Route Filters" (Rota Filtreleri) özelliği kullanılarak, mimariye uygun ve performans kaybı yaşanmadan yapılmalıdır.