Mantıklı denetleyicileri organize Yardım

1 Cevap php

Ben bir MVC yapısını kullanarak geliştiriyorum bir site üzerinde çalışıyorum. Benim modelleri sitedeki tüm verileri temsil edecek, ama ben iyi bir denetleyici yapısına karar için biraz mücadele ediyorum. Site kullanıcıları / giriş kayıt ve sayfaların bir dizi kişisel verileri görmek için, ama izin de yine vb kamu sayfalarında, örneğin SSS, İletişim sayfasına erişimi olacak

Bu benim şu anda ne var ...

Ana şablon ekran kolları bir Şablon Kontrolör. Site için temel şablon oturum olup olmadığını aynı kalacak

Şablon Kontrol uzanır ve temel kimlik doğrulaması yapar Bir ana Sitesi Kontrolör. Kullanıcı oturum ise, bir kullanıcı :: Control_Panel () yöntemi kurucusundan denir ve bu kimliği doğrulanmış oturum boyunca mevcut olacaktır kontrol paneli inşa edilir. Kullanıcı giriş değilse, o zaman farklı bir görünüm bir giriş formu ile yerine kontrol paneli, örneğin yüklenir. Tüm korumalı / public page ilgili kontrolörleri web kontrolörü uzatacaktır.

Kullanıcı anasayfa I Web Kontrol genişleten Ev Controller ile yapıyorum ben göstermek istiyorum widget bir numarası vardır. Bu kontrolör aşağıdaki statik çağrıları yoluyla bu aletler üretir:

$this->template->content->featured_pet = Pet::featured(); 
$this->template->content->popular_names = Pet::most_popular(); 
$this->template->content->owner_map = User::generate_map(); 
$this->template->content->news = News::snippet(); 

Bu statik yöntemler ana şablon içine yüklenir görüşlerini dönecektir - I hakkında emin olduğum ilk şey denetleyicileri (örn. Hayvan ve Kullanıcı) için yukarıdaki aramalar statik statik kalması ok olduğunu varsayalım. Bu benim geçmişte şeyler yaptık yoldur ama bu mantıklı bir yaklaşım olup olmadığını öğrenmek için merak ediyorum. Kullanıcılar imzalanan için diğer sayfaları korumalı Ev Kontrolörü benzer olacaktır.

Statik sayfalar bu kullanıcı kontrol paneli ya da giriş formu şablonunun sol tarafta gösterilmesi gerektiğini olup olmadığını bilecek ki, aynı zamanda, Web Sitesi Kontrolörü uzatacak olan bir Page Controller tarafından ele alınacaktır. Sadece sayfa Sayfa Kontrol yönlendirilir olmayacak korunan üye, bu kontrolör, sadece kamuya açık sayfaları idare edecek.

Örneğin, fikir web sitesi denetleyici talep denetleyicisi (URL yönlendirme sonra kimlik doğrulama işlemek gerektiğidir - Ben şu anda sahip olan bir sorun, hem kamu hem de korumalı sayfalar Web Kontrol uzatmak eğer, nasıl sonsuz bir döngü önlemek olmasıdır ), ama bu sonsuz yönlendirme döngüye neden olur, bu yüzden ben bu ile ilgili daha iyi bir yol ile gelmek gerekir.

Sonuçta, bu kurulum bir mantıklı geliyor?! Herhangi bir geri bildirim için minnettar.

1 Cevap

Ben benim kontrolörleri bu gibi dışarı koydu:

/**
* Global controller
*/

class MY_Controller extends Controller {

 function __construct() {
  parent::__construct();

  // Load templates, modules etc
 }
}


/**
* Admin controller
*/


class Admin_Controller extends MY_Controller {

 function __construct() {
  parent::__construct();

  // Check admin is logged in
 }
}

/**
* User controller
*/

class User_Controller extends MY_Controller {

 function __construct() {
  parent::__construct();

  // Check user is logged in

 }
}

Herhangi bir kullanıcı sayfa User_Controller uzanacak ve yönetici sayfası kolayca birçok baş ağrısı olmadan kimlik koyabilirsiniz bu şekilde Admin_Controller genişletmek ve ayrı tüm tutmak istiyorum.