Mimariye Genel Bakış
Bir istek girer, tek bir dağıtıcı bunun bir sayfa mı yoksa bir değişiklik mi olduğuna karar verir ve cevap HTML ya da JSON olarak döner. Geri kalan her şey bu cümleye hizmet eden bir katmandır.
Genel Bakış
WISECP, kılık değiştirmiş genel amaçlı bir çatı değil, kendine ait bir MVC çatısıdır. Alışıldık anlamda controller, model ve view'ları vardır; artı ona özgü iki parça: verinin değişmesinin tek yolu olan operation'lar ve çekirdeğin dışındaki herkesin sürece katılma biçimi olan kancalar.
Bir özelliği okumak genellikle dört dosya okumak demektir: adrese cevap veren controller, satırları getiren model, onları görünüme çeviren şablon ve onları değiştiren operation trait'i. Bu biçim tanıdık olduğunda kod tabanı büyük olmaktan çıkıp tekrarlı olmaya başlar; amaç da budur.
Yapı
İstek Akışı
index.php
└─ bootstrap.php sabitler, otomatik yükleyici, yapılandırma, oturum, dil
└─ Bootstrap::run() adres -> rota -> controller dosyası + parametreler
└─ {controller}->index(), index() yoksa ->main()
├─ istek `operation` taşıyorsa -> operation metodu -> JSON
└─ diğer her şey -> page_{ad}() -> HTML
Hatırlanacak şey ortadaki çataldır. Operation adı HTTP metodundan değil isteğin kendisinden okunur, yani her iki metot da taşıyabilir. Kararın söylediği şey hiçbir görünüm üretilmeyeceğidir. Bir operation adlandıran istek asla sayfa üretmez ve bir sayfa metodu asla yazmaz. Bu ayrım, izinleri, demo modunu ve hata biçimini her ekranda ayrı ayrı değil tek bir yerde karara bağlanabilir kılar.
Katmanlar
Üç Taraf, Tek Uygulama
Yönetim paneli, müşteri panelini de içeren kamuya açık site ve zamanlanmış komut satırı aynı çekirdek üzerinde çalışır. Farkları hangi controller'ların cevap verdiği, hangi şablonların kullanıldığı ve hangi oturumun geçerli olduğudur. Biri için yazılan bir yardımcı diğerlerine de açıktır; iş kurallarının controller'da değil yardımcılarda durmasının sebebi budur.
Tuzaklar
Çoğu zaman aynı işi farklı dosyalarla yaparlar, yani birinde yapılan değişiklik diğerinde kendiliğinden doğru olmaz. Bir davranışı düzeltirken ikizinin başka bir yerde olup olmadığını kontrol edin.
Controller'a ya da şablona yazılan bir sorgu çalışır, sonra o sayfanın yeniden kullanılamamasının, önbelleklenememesinin ya da komut satırından çağrılamamasının sebebi olur. Tek satır bile olsa modele koyun.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.