RaxBoard Node System

0 Replies 8 Views Showcase
·

Leave a rating: RaxBoard Node System

You have already rated this thread. Re-rating it will remove your existing rating or review.

Rating:

Raters: RaxBoard Node System

Participants
Hella D.
Hella D. Community Admin
Member

RaxBoard Node System


RaxBoard manages your entire forum structure through a hierarchical node tree. Categories, forums, links, and pages unite under a single infrastructure, delivering a flexible and scalable content organisation. 😎


Table of Contents

1. Node System Overview
2. Node Types
3. Hierarchical Tree Structure (Nested Set)
4. Forum Sub-Types
5. Icon Management
6. SEO & URL Structure (Slug)
7. Ordering & Drag-and-Drop
8. Deletion Strategies
9. Forum Permission System
10. Caching Architecture
11. Event System
12. Forum Data Model
13. Question & Answer System
14. Our Competitive Advantages

1. Node System Overview


In RaxBoard, the entire forum structure is built upon the concept of "nodes." Every category, every forum, every link, and every page is a node. Nodes can be nested to unlimited depth through parent-child relationships. This architecture handles every scenario from a simple two-level structure (category > forum) to complex multi-layered organisations.
The node system operates on the Nested Set algorithm. This allows the entire tree to be loaded with a single database query; subtree, ancestor chain, and sibling queries execute at O(1) complexity.


2. Node Types

The system supports six distinct node types.


TypeIconDescription
Categoryfa-folderContainer that groups other nodes. Does not hold content directly.
Forumfa-commentsPrimary content area where threads and messages are posted. Extended by the forums table.
Articlefa-newspaperArticle/blog format content area. The first post is displayed as a pinned article.
Pollfa-chart-barSpecialised forum type where every thread contains a poll.
Linkfa-linkExternal or internal URL redirect.
Pagefa-file-altStatic page content.


When creating nodes via the admin panel, only Category and Forum types are available. This design prevents creation of unreachable nodes.

3. Hierarchical Tree Structure (Nested Set)

RaxBoard manages the node hierarchy using the Nested Set model. Each node carries three coordinates.


FieldDescription
lft (Left)Left boundary number of the node
rgt (Right)Right boundary number of the node
depthDistance from the root node (0 = root)


With this structure, the entire subtree of any node can be found with a single WHERE lft > ? AND rgt < ? condition. The ancestor chain is obtained via WHERE lft < ? AND rgt > ?. When the tree is restructured (parent or order change), the system automatically calls rebuildTree() and recalculates all lft/rgt/depth values.
Subtree Size: The number of nodes contained within any node is calculated as (<rgt - lft + 1>) / 2.
Child Detection: If (<rgt - lft>) > 1, the node has children.


4. Forum Sub-Types

Every forum-type node can be customised with four distinct sub-types. Each sub-type offers its own default sorting, allowed thread types, and specific configuration options.

Sub-TypeDefault SortVotingFeatures
DiscussionLast post dateNoStandard discussion forum. Chronological thread listing.
Question (Q and A)Vote scoreYesAnswers sorted by vote score. Best answer can be selected.
ArticlePost dateNoFirst post pinned as article. Cover image and author bio support.
PollLast post dateNoEvery thread contains a poll. Vote changing and result hiding options.


Sub-type changes can be made from the admin panel; ForumTypeFactory automatically resolves the appropriate handler. If an unknown type is entered, the system falls back to Discussion.


5. Icon Management

Each node can be assigned one of three icon types.

Icon TypeValue FormatDescription
defaultAutomaticDefault Font Awesome icon based on node type
fafa-[a-z0-9-]+Custom Font Awesome class (e.g. fa-rocket, fa-shield-alt)
imagefilename.pngCustom uploaded image


Font Awesome Icons: Any Font Awesome 5/6 class matching the fa-[a-z0-9-]+ pattern can be used. The validation layer returns an error for invalid formats.
Custom Images: Images uploaded to the /data/uploads/node_icons/ directory are rendered at 18x18 pixels with 4px border-radius. Images are cropped with object-fit: cover and aligned with vertical-align: middle.
Default Icons: When no icon is assigned, an automatic icon is used based on node type (Category: fa-folder, Forum: fa-comments, Article: fa-newspaper, Poll: fa-chart-bar, Link: fa-link, Page: fa-file-alt).


6. SEO & URL Structure



Each node has an optional node_name (slug) field. Slug rules:






RuleDetail
FormatLowercase letters, digits, and hyphens only. Pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
LengthMaximum 50 characters
UniquenessEnforced by UNIQUE database constraint
Auto ConversionUppercase letters are automatically converted to lowercase


When no slug is defined, the URL structure falls back to /node-{id} format. This ensures every node is accessible with SEO-friendly, readable URLs. ;)


7. Ordering & Drag-and-Drop



Nodes can be ordered through two methods.
Manual Ordering: Each node's display_order value determines its position. When a new node is created, the order value is automatically assigned as 10 more than the current highest value under the same parent.
Drag-and-Drop: Bulk reordering is supported in the admin panel. JSON data from the drag-and-drop interface is validated via ReorderNodesDTO; parent loop detection is performed, then all nodes' parent_id and display_order values are updated. The Nested Set tree is automatically rebuilt after the operation.
Loop Protection: A node cannot be moved into its own subtree. The system detects and prevents loops in both individual moves and bulk reorder operations.


8. Deletion Strategies

When deleting a node, the fate of child nodes is determined by one of two strategies.

StrategyDescription
move_upChild nodes are moved to the deleted node's parent. Content is preserved.
cascadeThe entire subtree is deleted. Threads and messages in forum-type nodes are soft-deleted.


Content Protection: During cascade deletion, forum content (threads and messages) is not permanently destroyed; it is marked as discussion_state = 'deleted' and message_state = 'deleted'. This enables restoration when needed.
After deletion, the Nested Set tree is automatically rebuilt and caches are cleared.


9. Forum Permission System

Node-scoped permissions can be assigned to forum nodes. Permissions are defined at the user group or individual user level.
User Permissions:
Permission KeyDescription
forum.viewOthersView other users' threads
forum.viewContentView thread content
forum.postThreadCreate new threads
forum.postReplyReply to threads
forum.editOwnPostEdit own posts
forum.editOwnThreadTitleEdit own thread titles
forum.deleteOwnPostDelete own posts
forum.deleteOwnThreadDelete own threads
forum.reactReact to posts
forum.contentVoteVote on content
forum.viewAttachmentView attachments
forum.uploadAttachmentUpload attachments
forum.uploadVideoUpload videos
forum.tagOwnThreadTag own threads
forum.votePollVote in polls


Moderator Permissions:
Permission KeyDescription
forum.inlineModUse inline moderation tools
forum.stickUnstickThreadSticky/unsticky threads
forum.lockUnlockThreadLock/unlock threads
forum.manageAnyThreadMove/merge threads
forum.deleteAnyThreadSoft delete any thread
forum.hardDeleteAnyThreadHard delete any thread
forum.editAnyPostEdit any post
forum.deleteAnyPostSoft delete any post
forum.hardDeleteAnyPostHard delete any post
forum.viewDeletedView soft-deleted content
forum.viewModeratedView moderated content
forum.undeleteUndelete content
forum.approveUnapproveApprove/unapprove content
forum.tagAnyThreadTag any thread
forum.manageAnyTagManage any tag
forum.threadReplyBanBan users from replying
forum.createRequiresApprovalNew threads require moderator approval
forum.replyRequiresApprovalNew replies require moderator approval


Permissions accept one of three values: allow, deny, or unset. Compiled permission caches are stored in the permission_cache_forum table in JSON format for fast access.


10. Caching Architecture

The node tree is served through a four-tier caching system.

TierStorageTTL
L1 — Per-Request MemoryPHP array (per-request)Request lifetime
L2 — Shared CacheAPCu / Redis600 seconds
L3 — File Cachedata/cache/node_tree.phpUnlimited (invalidated on change)
L4 — DatabaseSQL queryNone (source of truth)


All cache tiers are automatically cleared after every node CRUD operation. The CacheInvalidationListener also invalidates the navigation cache and the compiled template resolution map.


11. Event System

Node operations trigger side effects through a PSR-14 compliant event dispatcher.

EventTriggerPayload
NodeCreatedEventWhen a new node is creatednodeId, nodeTypeId, title, parentId
NodeUpdatedEventWhen a node is updatednodeId, changedFields
NodeDeletedEventWhen a node is deletednodeId, nodeTypeId, childAction


These events are consumed by the CacheInvalidationListener; cache clearing, navigation rebuild, and template resolution map updates occur automatically.


12. Forum Data Model

Forum-type nodes are extended by an additional forums table. This table is linked to the nodes table via a foreign key and cascades automatically on node deletion.

FieldDescription
discussion_countTotal thread count in the forum (denormalised)
message_countTotal message count in the forum (denormalised)
last_post_idID of the most recent post
last_post_dateDate of the most recent post
last_post_usernameUsername of the most recent poster
last_thread_idID of the most recently active thread
last_thread_titleTitle of the most recently active thread
forum_type_idForum sub-type (discussion, question, article, poll)
allow_postingWhether new content can be created in the forum
require_prefixWhether a prefix is required when creating threads
min_tagsMinimum number of tags required when creating threads


Counters (discussion_count, message_count) are updated incrementally. After moderation operations, the rebuildForum() method can recompute the full count. Category nodes aggregate child forum statistics upward (bubble-up) for display at the category level.


13. Question & Answer System

Forums with the Question sub-type feature an advanced Q and A mechanism.
Voting: Answers can receive +1 or -1 votes. Vote toggling is supported. Answers are sorted by vote score.
Best Answer: The thread owner or an authorised moderator can mark an answer as the "solution." The solution mark can be toggled. Solved threads are displayed with a special badge in thread listings.
Statistics: Each thread's answer count and solved status can be queried in bulk. The N+1 query problem is prevented in list views.


14. Our Competitive Advantages


FeatureThe RaxBoard Difference
Nested Set TreeEntire hierarchy loaded with a single query; unlimited depth support.
Four Forum Sub-TypesDiscussion, Q and A, Article, and Poll on the same infrastructure; no additional plugins required.
Three-Tier Icon SystemDefault, Font Awesome, and custom image options.
Four-Tier CachingMemory, APCu/Redis, file, and database for high performance.
Node-Scoped PermissionsIndependent, user-group-based permission assignment per forum.
Smart Deletion StrategiesCascade and move_up options with zero risk of content loss.
PSR-14 Event SystemAutomatic side-effect management on node operations.
Q and A with VotingBuilt-in question-answer, best answer, and vote scoring system.




RaxBoard Node, Forum & Kategori Sistemi

RaxBoard, forumunuzun tüm yapısını hiyerarşik bir node ağacı üzerinde yönetir. Kategoriler, forumlar, bağlantılar ve sayfalar tek bir altyapıda birleşerek esnek ve ölçeklenebilir bir içerik organizasyonu sunar. 😎


İçindekiler

1. Node Sistemi Genel Bakış
2. Node Türleri
3. Hiyerarşik Ağaç Yapısı (Nested Set)
4. Forum Alt Türleri
5. İkon Yönetimi
6. SEO ve URL Yapısı (Slug)
7. Sıralama ve Sürükle-Bırak
8. Silme Stratejileri
9. Forum İzin Sistemi
10. Önbellekleme Mimarisi
11. Olay Sistemi (Events)
12. Forum Veri Modeli
13. Soru-Cevap (Q and A) Sistemi
14. Rekabet Avantajlarımız


1. Node Sistemi Genel Bakış

RaxBoard'da forum yapısının tamamı "node" kavramı üzerine inşa edilmiştir. Her kategori, her forum, her bağlantı ve her sayfa birer node'dur. Node'lar ebeveyn-çocuk ilişkisiyle sınırsız derinlikte iç içe yerleştirilebilir. Bu mimari, basit bir iki seviyeli yapıdan (kategori > forum) karmaşık çok katmanlı organizasyonlara kadar her senaryoyu karşılar.
Node sistemi, Nested Set (iç içe küme) algoritmasıyla çalışır. Bu sayede tüm ağaç tek bir veritabanı sorgusuyla yüklenebilir; alt ağaç, ata zinciri ve kardeş node sorguları O(1) karmaşıklığında gerçekleşir.


2. Node Türleri

Sistem altı farklı node türünü destekler.
TürİkonAçıklama
Categoryfa-folderDiğer node'ları gruplayan kapsayıcı. Doğrudan içerik barındırmaz.
Forumfa-commentsKonu ve mesajların paylaşıldığı ana içerik alanı. Forums tablosuyla genişletilir.
Articlefa-newspaperMakale/blog formatında içerik alanı. İlk gönderi sabitlenmiş makale olarak görüntülenir.
Pollfa-chart-barHer konunun bir anket içerdiği özel forum türü.
Linkfa-linkHarici veya dahili URL yönlendirmesi.
Pagefa-file-altStatik sayfa içeriği.
Yönetim panelinden node oluşturulurken yalnızca Category ve Forum türleri kullanılabilir. Bu tasarım, erişilemez node oluşturulmasını önler.


3. Hiyerarşik Ağaç Yapısı (Nested Set)

RaxBoard, node hiyerarşisini Nested Set (iç içe küme) modeliyle yönetir. Her node üç koordinat taşır.
AlanAçıklama
lft (Sol)Node'un sol sınır numarası
rgt (Sağ)Node'un sağ sınır numarası
depth (Derinlik)Kök node'a olan mesafe (0 = kök)
Bu yapı sayesinde herhangi bir node'un tüm alt ağacı, tek bir WHERE lft > ? AND rgt < ? koşuluyla bulunur. Ata zinciri ise WHERE lft < ? AND rgt > ? sorgusuyla elde edilir. Ağaç yeniden yapılandırıldığında (ebeveyn veya sıralama değişikliği) sistem otomatik olarak rebuildTree() metodunu çağırır ve tüm lft/rgt/depth değerlerini yeniden hesaplar.
Alt Ağaç Boyutu: Herhangi bir node'un kaç node içerdiği (<rgt - lft + 1>) / 2 formülüyle hesaplanır.
Çocuk Kontrolü: (<rgt - lft>) > 1 ise node'un çocukları vardır.


4. Forum Alt Türleri

Forum türündeki her node, dört farklı alt tür ile özelleştirilebilir. Her alt tür, varsayılan sıralama, izin verilen konu tipleri ve özel yapılandırma seçenekleri sunar.
Alt TürVarsayılan SıralamaOylamaÖzellikler
DiscussionSon mesaj tarihiHayırStandart tartışma forumu. Kronolojik konu listesi.
Question (Soru-Cevap)Oy puanıEvetCevaplar oy puanına göre sıralanır. En iyi cevap seçilebilir.
Article (Makale)Yayın tarihiHayırİlk gönderi makale olarak sabitlenir. Kapak görseli ve yazar biyografisi desteği.
Poll (Anket)Son mesaj tarihiHayırHer konu bir anket içerir. Oy değiştirme ve sonuç gizleme seçenekleri.
Alt tür değişikliği yönetim panelinden yapılabilir; ForumTypeFactory ilgili handler'ı otomatik olarak çözümler. Bilinmeyen bir tür girildiğinde sistem Discussion'a geri döner.


5. İkon Yönetimi

Her node'a üç farklı ikon türünden biri atanabilir.
İkon TürüDeğer FormatıAçıklama
defaultOtomatikNode türüne göre varsayılan Font Awesome ikonu kullanılır
fafa-[a-z0-9-]+Özel bir Font Awesome sınıfı belirtilir (orn: fa-rocket, fa-shield-alt)
imagedosya-adi.pngYüklenen özel görsel kullanılır
Font Awesome İkonları: fa-[a-z0-9-]+ kalıbına uygun herhangi bir Font Awesome 5/6 sınıfı kullanılabilir. Geçersiz format girildiğinde doğrulama katmanı hata döndürür.
Özel Görseller: /data/uploads/node_icons/ dizinine yüklenen görseller 18x18 piksel boyutunda, 4px border-radius ile render edilir. Görseller object-fit: cover ile kırpılır ve vertical-align: middle ile satıra hizalanır.
Varsayılan İkonlar: Herhangi bir ikon atanmadığında node türüne göre otomatik ikon kullanılır (Category: fa-folder, Forum: fa-comments, Article: fa-newspaper, Poll: fa-chart-bar, Link: fa-link, Page: fa-file-alt).


6. SEO ve URL Yapısı

Her node isteğe bağlı bir node_name (slug) alanına sahiptir. Slug kuralları:
KuralDetay
FormatYalnızca küçük harf, rakam ve tire. Kalıp: ^[a-z0-9]+(?:-[a-z0-9]+)*$
UzunlukMaksimum 50 karakter
BenzersizlikVeritabanında UNIQUE kısıtlama ile korunur
Otomatik DönüşümBüyük harfler otomatik küçük harfe çevrilir
Slug tanımlanmadığında URL yapısı /node-{id} formatına geri döner. Bu sayede her node SEO dostu, okunabilir URL'lerle erişilebilir. ;)


7. Sıralama ve Sürükle-Bırak

Node'lar iki yöntemle sıralanabilir.
Manuel Sıralama: Her node'un display_order değeri ayarlanarak sıralama belirlenir. Yeni node oluşturulduğunda sıralama değeri otomatik olarak aynı ebeveyn altındaki mevcut en yüksek değerin 10 fazlası olarak atanır.
Sürükle-Bırak: Yönetim panelinde toplu sıralama desteği mevcuttur. Sürükle-bırak arayüzünden gelen JSON verisi ReorderNodesDTO ile doğrulanır; ebeveyn döngüsü tespiti yapılır, ardından tüm node'ların parent_id ve display_order değerleri güncellenir. İşlem sonrası Nested Set ağacı otomatik yeniden oluşturulur.
Döngü Koruması: Bir node kendi alt ağacına taşınamaz. Sistem, hem tekil taşıma hem de toplu sıralama işlemlerinde döngü tespiti yapar ve engeller.


8. Silme Stratejileri

Node silinirken çocuk node'ların akıbeti iki farklı stratejiyle belirlenir.
StratejiAçıklama
move_up (Yukarı Taşı)Çocuk node'lar silinen node'un ebeveynine taşınır. İçerik korunur.
cascade (Zincirleme Sil)Tüm alt ağaç silinir. Forum türündeki node'lardaki konular ve mesajlar yumuşak silinir (soft-delete).
İçerik Koruması: Cascade silme işleminde forum içerikleri (konular ve mesajlar) kalıcı olarak silinmez; discussion_state = 'deleted' ve message_state = 'deleted' olarak işaretlenir. Bu sayede gerektiğinde geri yükleme mümkündür.
Silme işlemi sonrası Nested Set ağacı otomatik yeniden oluşturulur ve önbellekler temizlenir.


9. Forum İzin Sistemi

Forum node'larına özel, node bazlı izin atanabilir. İzinler kullanıcı grubu veya bireysel kullanıcı düzeyinde tanımlanır.
Kullanıcı İzinleri:
İzin AnahtarıAçıklama
forum.viewOthersDiğer kullanıcıların konularını görüntüleme
forum.viewContentKonu içeriğini görüntüleme
forum.postThreadYeni konu oluşturma
forum.postReplyKonulara yanıt yazma
forum.editOwnPostKendi mesajını düzenleme
forum.editOwnThreadTitleKendi konu başlığını düzenleme
forum.deleteOwnPostKendi mesajını silme
forum.deleteOwnThreadKendi konusunu silme
forum.reactMesajlara tepki verme
forum.contentVoteİçerik oylaması
forum.viewAttachmentEk dosyaları görüntüleme
forum.uploadAttachmentEk dosya yükleme
forum.uploadVideoVideo yükleme
forum.tagOwnThreadKendi konusuna etiket ekleme
forum.votePollAnketlerde oy kullanma
Moderatör İzinleri:
İzin AnahtarıAçıklama
forum.inlineModSatır içi moderasyon araçlarını kullanma
forum.stickUnstickThreadKonuları sabitleme/kaldırma
forum.lockUnlockThreadKonuları kilitleme/açma
forum.manageAnyThreadKonuları taşıma/birleştirme
forum.deleteAnyThreadHerhangi bir konuyu yumuşak silme
forum.hardDeleteAnyThreadHerhangi bir konuyu kalıcı silme
forum.editAnyPostHerhangi bir mesajı düzenleme
forum.deleteAnyPostHerhangi bir mesajı yumuşak silme
forum.hardDeleteAnyPostHerhangi bir mesajı kalıcı silme
forum.viewDeletedSilinmiş içerikleri görüntüleme
forum.viewModeratedModerasyon bekleyen içerikleri görüntüleme
forum.undeleteSilinmiş içerikleri geri yükleme
forum.approveUnapproveİçerik onaylama/onay kaldırma
forum.tagAnyThreadHerhangi bir konuya etiket ekleme
forum.manageAnyTagHerhangi bir etiketi yönetme
forum.threadReplyBanKullanıcıları yanıt vermekten yasaklama
forum.createRequiresApprovalYeni konular moderatör onayı gerektirir
forum.replyRequiresApprovalYeni yanıtlar moderatör onayı gerektirir
İzinler üç değerden birini alır: allow, deny veya unset. Derlenmiş izin önbelleği permission_cache_forum tablosunda saklanır ve JSON formatında hızlı erişim sağlar.


10. Önbellekleme Mimarisi

Node ağacı dört katmanlı bir önbellek sistemiyle sunulur.
KatmanDepolamaTTL
L1 — İstek İçi BellekPHP dizisi (per-request)İstek ömrü
L2 — Paylaşımlı ÖnbellekAPCu / Redis600 saniye
L3 — Dosya Önbelleğidata/cache/node_tree.phpSınırsız (invalidate ile)
L4 — VeritabanıSQL sorgusuYok (kaynak)
Her node CRUD işleminden sonra tüm önbellek katmanları otomatik olarak temizlenir. CacheInvalidationListener, navigasyon önbelleğini ve derlenen template çözümleme haritasını da geçersiz kılar.


11. Olay Sistemi

Node işlemleri PSR-14 uyumlu bir olay dağıtıcısı üzerinden yan etkiler tetikler.
OlayTetiklenme ZamanıTaşınan Veri
NodeCreatedEventYeni node oluşturulduğundanodeId, nodeTypeId, title, parentId
NodeUpdatedEventNode güncellendiğindenodeId, changedFields
NodeDeletedEventNode silindiğindenodeId, nodeTypeId, childAction
Bu olaylar CacheInvalidationListener tarafından dinlenir; önbellek temizleme, navigasyon yeniden oluşturma ve template çözümleme haritası güncelleme işlemleri otomatik gerçekleşir.


12. Forum Veri Modeli

Forum türündeki node'lar, ek bir forums tablosuyla genişletilir. Bu tablo, nodes tablosuna foreign key ile bağlıdır ve node silindiğinde otomatik cascade edilir.
AlanAçıklama
discussion_countForumdaki toplam konu sayısı (denormalize)
message_countForumdaki toplam mesaj sayısı (denormalize)
last_post_idSon mesajın kimliği
last_post_dateSon mesajın tarihi
last_post_usernameSon mesajı yazan kullanıcı
last_thread_idSon aktif konunun kimliği
last_thread_titleSon aktif konunun başlığı
forum_type_idForum alt türü (discussion, question, article, poll)
allow_postingForumda yeni içerik oluşturulabilir mi
require_prefixKonu oluştururken prefix zorunlu mu
min_tagsKonu oluştururken gereken minimum etiket sayısı
Sayaçlar (discussion_count, message_count) artımlı olarak güncellenir. Moderasyon işlemlerinden sonra rebuildForum() metodu ile tam sayım yeniden hesaplanabilir. Kategori node'larında alt forum istatistikleri yukarı doğru toplanarak (bubble-up) kategori seviyesinde gösterilir.


13. Soru-Cevap Sistemi

Question alt türündeki forumlarda gelişmiş bir Soru-Cevap mekanizması çalışır.
Oylama: Cevaplara +1 veya -1 oy verilebilir. Oy değiştirme (toggle) desteklenir. Cevaplar oy puanına göre sıralanır.
En İyi Cevap: Konu sahibi veya yetkili moderatör, bir cevabı "çözüm" olarak işaretleyebilir. Çözüm işareti kaldırılabilir (toggle). Konu listesinde çözülmüş konular özel rozetle gösterilir.
İstatistikler: Her konunun cevap sayısı ve çözülme durumu toplu olarak sorgulanabilir. Liste görünümünde N+1 sorgu problemi önlenmiştir.


14. Rekabet Avantajlarımız

ÖzellikRaxBoard Farkı
Nested Set AğacıTüm hiyerarşi tek sorguyla yüklenir; sınırsız derinlik desteği.
Dört Forum Alt TürüDiscussion, Q and A, Article ve Poll aynı altyapıda; ek eklenti gerektirmez.
Üç Katmanlı İkon SistemiVarsayılan, Font Awesome ve özel görsel seçenekleri.
Dört Katmanlı ÖnbellekBellek, APCu/Redis, dosya ve veritabanı ile yüksek performans.
Node Bazlı İzinlerHer forum için bağımsız, kullanıcı grubu bazlı izin ataması.
Akıllı Silme StratejileriCascade ve move_up seçenekleriyle içerik kaybı riski sıfır.
PSR-14 Olay SistemiNode işlemlerinde otomatik yan etki yönetimi.
Q and A ve OylamaYerleşik soru-cevap, en iyi cevap ve oy puanlama sistemi.

Last edited 04 Jun 2026, 17:16

You must be logged in to reply.