2012-05-09 16 views
6

Zend Framework'ü öğreniyorum, ancak kullanım ve kavramlar hakkında bazı şüphelerim var.Kullanıcının Zend Framework ile giriş yapıp yapmadığını nasıl kontrol edebilirim?

Kullanıcının tüm sayfalara erişime izin vermek için oturum açıp açmadığını kontrol etmek istiyorum. Eğer öyleyse, sayfayı gösterin, değilse sayfayı giriş yapın.

Benim asıl şüpheler nerede kullanıcı (her denetleyicisi veya çerçeve otomatik olarak her talebi için bu denetler) kaydedilir olmadığını kontrol etmek bu (Zend_Auth, Zend_Acl, vs) ve yapmak için kullanmak ne gerek vardır .

+0

ACL genellikle kullanıcı kontrolü düzeyleri için kullanılır. Zend_Auth'ı istiyorsun. – Brendan

+0

İhmal edilen kullanıcı için neden -1? –

+1

"Sorunuz herhangi bir araştırma çalışması göstermiyor" (bunun için aşağı oy okunun üzerine gelin). Bulmak için bir sürü öğretici var ve size aradığınız bilgiyi verecek ZF için mükemmel bir kılavuz var. Her durumda cevabım sizi doğru yönde hareket ettirmeli. İyi şanslar. – vascowhite

cevap

5

Kullanmak istediğiniz araç, asmak istediğinizde kullanımı oldukça kolay olan Zend_Auth'dur. Bir kullanıcı kadar basit olabilir açtıysa

kontrol edilmesi: -

$auth = Zend_Auth::getInstance(); 
if($auth->hasIdentity()) $loggedIn = true; 

Rob Allen's excellent tutorial on getting started with Zend Auth bakınız.

kullandığım yöntem benim denetleyicileri hiçbirinde ben tıpkı böylece yetki ve erişim kontrolü sonrasında görünen bir kullanıcı sınıfını ayarlamak ve bir Action Helper başvurum enjekte etmektir

: -

$this->user->checkSomething(); 

Yetkilendirme bölümünün, sitenizin herkese açık istemediğiniz tüm bölümlerini etkilemesi ve etkilenen her denetleyicinin, kullanıcının oturum açıp açmadığını denetlemesi gerekir. Erişim denetimi için, bu kaynak başına/görev başına yapılır. Ne kadar ince taneli olmanız gerektiğine bağlı olarak, kılavuzda ACL ve AUTH.

+0

Aksiyon kullananlar performans için kötü olarak değerlendirilmiyor mu? – Songo

+0

Hangi yolla? Bir eylem yardımcısı yalnızca gerektiğinde yüklenir, ben hiç bir performans sorunu fark etmedim. Bunun için bir kaynağa bağlanabilir misiniz? Okumak isterdim. – vascowhite

+0

de, kabul edilen cevapta [bu] için (http://stackoverflow.com/questions/4708754/optimising-the-zend-framework) sorudan bahsedilmiştir. Ayrıca bir süre önce bu makaleyi (http://www.rmauger.co.uk/2009/03/why-the-zend-framework-actionstack-is-evil/) buldum. Eylem Yardımcılarını nadiren kullandığımdan daha fazla araştırma yapmadım.Bununla ilgili başka materyalleriniz varsa, o zaman plz gönderin. – Songo

2

Kullanıcının ZindFramework ile giriş yapıp yapmadığını kontrol etmek ister misiniz? 'Hata ayıklama' için kumandanın her yerde içinde

Yeri Bu, ve kod üst veya başında koydu: Bu deneyin

if (Zend_Auth::getInstance()->hasIdentity()) echo "oh yeah I'm logged in lol"; die; 
İlgili konular