Zend Framework: Kontrolör sınıf == Page?

3 Cevap php

Birazdan benim sahasında 5 sayfa var planlıyorsanız, Zend Framework, ben genellikle 5 denetleyicileri gerekiyordu olduğunu düşünerek mıyım? ZF geliştiriciler tipik sayfa başına 1 denetleyicisi (abtract app birim olarak "sayfa") oluşturmak mı?

Bu soruyorum nedeni sayfaların rol oynadı, böylece daha önce nedense ben denetleyicileri içine çeşitli eylemler bir sürü doldurulmuş olduğunu, örneğin index / eklemek index / görünüm, dizin / silmek ve çeşitli küçük ekranlar görüntülenir, örneğin endeksi eylem tarafından görüntülenen ızgaraları karşı küçük CRUD ekranlar.

Ama şimdi ben eylemleri modeli güncellemeleri ve eylemler, bir kez çalıştırmak gerekir çoğunlukla gerekli olduğunu benim yeni anlayış kontrol etmek istiyorsanız, hemen geri kontrolörü / endeks için yönlendirmek. Bu yüzden views çoğunlukla endeksi eylemlerde kullanılan ve daha az sıklıkla diğer eylemler gerektiğini görünüyor.

Bu mimari geçerli geliyor mu?

3 Cevap

Ben senin benzetme kullanarak ... bunu yapmanın bir yolu şu i bir "bölüm" ve bu bölümlere "sayfalar" gibi eylemler gibi bir denetleyici kullanmak varsayalım varsayalım.

Ama elde şu eski usul hakkında daha fazla takılıp | | sayfaların statik paradigma gerçekten eylem denetleyici kendisi bir geliştirici olarak yapmak dernek daha bir sayfa veya bölüm ile ilgisi yok daha vardır çünkü. Ie. Her sayfası potansiyel uygulamanın mimarisi üzerinde derinleşmesi sayıda eylem ve görüşlerin bir bileşik olabilir.

I bir blog modülleri varsa Örneğin ben şu olabilir:

Kontrolörler:

  • PostController
  • CommentController

İzlenme:

  • post
    • ekran (bir tek yazı gösterilecek)
    • listesi (mesaj)
    • düzenlemek (create / edit post)
  • comment
    • ekran (ekran n yorum)
    • listesi (yorum)
    • düzenleme (oluşturma / düzenleme / orta comment)
    • embed-list (varsayarak Mesajın kendisi kullanmak için bu ekrandan farklı)

Benim görüşüme göre, bir kontrolör gerektiği her zaman ortak kullanım durum var grup birden çok yöntem. App işlevselliğini tanımlamak "isimler", bulmaya çalışın: o (fiiller denetleyici yöntemler iken) denetleyicileri vardır.

(Örneğin) bir blog varsa, olabilir:

  • ArticleListController (listing all articles, listing the top 10, listing all articles for a tag,...)
  • SingleArticleController (bir makale görüntüleme, yorum ekleme, ...)
  • AdminController (Eğer Makaleler yazabilirsiniz)

Eğer sadece 5 sayfa varsa (yaklaşık örneğin ev, iletişim, ...) MVC mimarisi doğru uygun olmayabilir.

indexAction sadece bir varsayılan görünümü (bir alt dizin için index.html veya index.php sayfasını görüntüleme gibi aynı) görüntülemek için kullanışlı bir verilen denetleyicisi için varsayılan eylemdir.

O ya da değil, her biri kendi görüşlerini (i.e. eklemek ve düzenlemek için) sahip olabilir, bir denetleyici bazında çeşitli eylemler oluşturmak için tamamen kabul edilebilir. Kontrol grubu benzer işlemlerden amaçlanmıştır.

Örnek kullanım için üzerinde belgelere bakın Zend_Controller_Action. Sen de yararlı Zend_Controller ve iş akışı ile kendinizi tanımak için bulabilirsiniz.