Nasıl lay-out olmalı benim PHP giriş sınıfı?

3 Cevap php

Yani, bir giriş formu var oluyor; üyelerin ancak 1 3 türleri member_type_a, member_type_b oturum olacak, member_type_c bunların hepsi aynı bazı özellikleri var ve bazı kime kendilerine özgü yöntemler ve / veya özelliklere sahip olabilir. Ben sınıf üyesi alan sayfalar ile kullanılmak üzere bir oturum değişkeni kaydedilmesini istiyorum.

Yürürlükteki tasarım desenleri üzerinde herhangi bir öneriniz?

Gordon: Erişim kontrol benim sorun değil ... Ben bir kullanıcı gitmek için izin nerede nasıl kontrol anlıyorum. Benim bir soru benim giriş sınıf yapısı nasıl olduğunu; Bir kullanıcı imzaladığında, bir yöntem geçerli bir kullanıcı adı ve parola için 3 tablolar arayacaktır. Ne zaman bulunursa, ben onlar kullanıcının ne tür bilecek ve buna göre üye sayfasına onları yönlendirmek mümkün olacak. Ben sadece biz daha fazla üye türlerini satır aşağı eklemek için olsaydı, o sonsuz ölçeklenebilir olacağını, gevşek bir şekilde bağlanmış benim sınıfları tutmak nasıl tartışmaya çalışıyorum.

Örneğin, bir fark yönlendirme URL olurdu

3 Cevap

Sorunun giriş sınıfı ile ancak kullanıcı sınıfı ile değil gibi hissediyorum. Neden sadece devralma kullanmak ve bir üst User sınıf oluşturmak, daha sonra 3 alt-kullanıcı sınıflarını yaratmak değil. Örneğin:

class User {
    $email;
    $password;
    $etc;
}

class UserTypeA extends User {
    $specific_property_1;
    $specific_property_2;
    $specific_property_3;
}

class UserTypeB extends User {
    $specific_property_1;
    $specific_property_2;
    $specific_property_3;
}

class UserTypeC extends User {
    $specific_property_1;
    $specific_property_2;
    $specific_property_3;
}

Ana kullanıcı sınıfındaki tüm ortak özelliklerini ve yöntemlerini tutun ve çocuk sınıflar tüm benzersiz özellikleri ve yöntemleri.

Belki oynanırsa, ama sen kullanıcı için üç farklı tablolar bakmak demek - sen kendi tablodaki her tür kullanıcıları koyuyorsun? Bu kullanıcı türü (veya rol) tanımlayan bir sütun ile bir tek kullanıcıların tablo kullanmak tüm şeyleri basitleştirmek misiniz? Sonra sadece kullanıcı türüne göre kullanıcı nesneleri oluşturmak verebilecek bir giriş dersim var.

Bu yüzden ben strateji desen kullanarak olacak tespit ettik. O A tipi bir kullanıcı ise ben içeri imzalanmış kullanıcı tipini belirleyen bir giriş sınıfı olacak, ben typeAStrategy nesneye benim strateji özelliği ayarlamak olacak, ve tüm doğru yöntemleri ve özellikleri, sonra benim tabanı içinde ikamet edecek sınıf.

Ben strateji nesnesine $ bu geçirdiğinizde Ayrıca, ... Ben yönlendirme bağlantısını oluşturmak için gereken ne olursa olsun diğer değişkenler kimliğini kullanmak mümkün olacak ve