Geleneksel "Sayfa" tanımlar nedir

3 Cevap php

PHP kullanırken şu anda benim seçim çerçevesi olarak CodeIgniter'ı kullanın. Ben güreş am şeylerden biri bir "sayfa" fikri ve nasıl düzgün MGD içinde bu temsil etmektir. Bildiğim kadarıyla, CodeIgniter bu sayfa kontrolörleri için delegeler bir ön denetleyicisi bulunmaktadır. Benim düşünce sürecinde, her sayfa kendi denetleyici bulunuyor olurdu. Çoğu zaman ben birçok yöntem ile doldurulmuş bir sayfa denetleyici kullanarak birini görmeye bile. Yani bu anlamda, her eylem kendi sayfası olur.

Eğer bir seferde sadece denetleyici bir yöntem veya iki gerekirse çok fazla havai olacak gibi görünüyor çünkü gerçekten, bir denetleyici içine birçok yöntem doldurma fikrini sevmedim. Bu kendi denetleyicisi var her sayfa için daha makul görünüyor, ve eylemler sadece bu özel sayfada yapabileceğiniz bir şey karşılık gelir. Ben bu konuda yanlış şekilde düşünüyorum?

Ne daha kafa karıştırıcı yapar, bunlar birden çok yöntem (yani giriş, kayıt, görüntüleme, düzenleme, vb) sahip olacak bir denetleyicisi olacak nerede bazı web uygulamaları fark edeceksiniz, ama sonra diğerleri üzerinde aslında bir giriş denetleyicisi var olduğunu ve bir kayıt denetleyicisi. Bir "sayfa kontrolü" doğru kullanımı nedir?

3 Cevap

Bir etki alanı açısından bakıldığında ben kesinlikle etki bağlamında başına 1 denetleyicisi olması daha mantıklı söylüyorlar. İlle bir sayfa başına bağlamında bağlı olarak, bu durumda olsa da. Ne bağlamda demek "yakından ilgili eylemler" dir.

Örneğin bir hesap kontrolörü, giriş kolu kayıt, çıkış, parola, eylemlerini değiştirmek gerekir. Hepsi bir "Hesap" kapsamında canlı

Örneğin StackOverflow al. Ben, DisplayQuestion, AskQuestion gibi eylemler var Onlar bir denetleyicisi tarafından yönetilen tüm farklı "Views / sayfalar" vb Soru, MostRecent Soruları, silme bir "Sorular" denetleyicisi olurdu.

Bir denetleyicisi doğru bu her kamu yöntem konum bir "sayfa" haline gelir. Söyleniyor, bir eylem veri post olması ve daha sonra sayfa mutlaka "web sayfası" anlamına gelmez bu yüzden başka bir eylem / sayfaya yönlendirme olabilir, mutlaka bir web sayfası değil.

MVC işlerin yapmak için sözleşmelerin bir çok kullanır. Örneğin, her denetleyici "Controller" ile bitmelidir. Yani kullanıcı sayfaları kümesidir (vs, silmek, oluşturmak, düzenlemek) bir UserController olacaktır. Görünümler klasöründe, kontrolör sınıf içinde her kamu yöntem veya eylem (Bu durumda, bir kullanıcı bir klasöre) kumandanın öneki eşleşen bir klasör içinde bir web sayfası olur. Yani denetleyici sınıf içinde "Sil" adında bir eylem Kullanıcı klasör içinde Delete.aspx sayfasına işaret eder.

Bu bir sınıfta bu yöntemleri tüm koymak için biraz garip görünüyor, ancak sizin nesneye dayalı işlevleri gibi organize güzel bir iş yok.

MVC, bir 'sayfa' birlikte üç koyduğunuzda ne olsun. Model veri katmanı kolları, görünümü kullanıcının gördüğü gerçek HTML kolları ve denetleyici onlar istenen verileri göstermek için bir araya arayüzü nasıl karar verir. Varolan denetleyici için ayrı bir denetleyici ya da başka bir yöntem kullanmak gibi benim seçim işlemi ben diğer denetleyici (ler) ne kadar yakın menteşeleri. Ben bir şekilde bir kullanıcının hesabını değişen ele işlevsellik ekleme olsaydı ben büyük olasılıkla bunu vereceğini UserAdmin denetleyicisi, şimdi en büyük olasılıkla kolu, vb bir kullanıcı ekleme, kullanıcı silme, şifre değiştirme olurdu var istedim ki orada. Ben kendi denetleyici bulunuyor içine onları ayrılmış olsaydı ben doğal olarak başka bir eklersiniz. Kontrolörler onlar yerine zaten yapılmış olanı yeniden zorunda değil, sınıfta zaten ne kaldıraç olabilir böylece, birbirine benzer görevleri ev için izin verir. Bunun bir çok programcı yapılması gerektiğini düşünüyor nasıl. Ne size mantıklı bana mantıklı olmayabilir, bu geliştirici (veya tasarımcının) seçimdir.