2016-03-27 11 views
0

Bu soru oturumların perdelerin ardında nasıl çalıştığına dair daha fazla cehalettir ... Ama Laravel 5 ile çalışıyorum, bir kullanıcı siteyi ziyaret ettiğinde siteyi ziyaret ettiğinde oturum değişkenini belirleyen çok basit bir kontrolör ifadem var. bir referans bağlantısı.PHP (Laravel) ve kuyruğa alınmış olaylar, hangi noktada oturumun artık erişilebilir olmadığı?

public function checkReferralCode($code) 
{ 
    session(['referral_code'=>$code]); 
    .... 

bu oturum değer ben sıraya alındı ​​ve daha sonra birlikte Beanstalkd demek işlenmiş bir olayı diyoruz ne olur,

session('referral_code'); 

benim sorum ile proje boyunca elbette mevcut? Bu olayın bir oturum değişkenine ihtiyacı varsa, bu olay oturum ve oturum değişkenlerinin neler olduğunu kaybeder mi? Diğer bir deyişle, erişim sağlamak için bu değişkenleri kuyruğa alınmış etkinliğe ilettiğinden emin olmalı mıyım?

Şu an için benim etkinliklerim senkronize, ancak beanstalkd'yi kullanmam gerekip gerekmediğinden emin olmak isterim, herhangi bir sürprizim yok.

cevap

1

Bir olayın kuyrukta olup olmadığına bakılmaksızın, olay dinleyiciniz hiçbir zaman oturuma erişmemelidir. Bir olay örneği basit bir DTO'dur (veri aktarım nesnesi) ve her şeyi içermelidir. olay dinleyicinizin olayı işlemesi gerekir.

+1

Teşekkür ederim efendim, DTO'ları duydum ama asla onlar hakkında fazla şey öğrenmedim, kesinlikle daha fazla okuma yapacağım. – dangel

+0

Tüm referralcode nesnesi olaya gönderilmeli mi? veya gerekirse ek bilgi almak için olayın veritabanına ulaşması uygun mu? (Referans kodu geçerliliğini kontrol etmek istediğimi varsayalım ...) – dangel