![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 3.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Piszę prosty VC framework (zamiast M mam tylko klasę do przetwarzania sql),
Jak zainicjować wiele klas na raz? Czy poniższy kod jest bezpieczny? //podaję listę klas do zainicjowania $uses=array('db','form','validate'....); foreach ($uses as $cls){ $cls=substr(strip_tags(strtolower($cls)),0,25); include_once CLASSES.$cls.'_class.php'; //chodzi mi szczególnie o tą linjkę.... eval ('$'.$cls.'= new '.$cls.';'); } Co chcę zrobić? Chcę w dowolnym miejscu programu wpisać np. $db->get("username"), bez konieczności tworzenia ręcznie $db=new db; Jeśli mam 20 klas, ręczne definiowanie wszystkiego wygląda kretyńsko... Z drugiej strony, korzystanie w eval, jak wyżej również... Czy jest jakiś prostszy sposób? Wiem, że funkcją __autoload można zastąpić include, ale czy jest analogiczna funkcja od razu deklarująca klasę? (np. $db=new db;) z góry dzięki za pomoc |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 14 Dołączył: 28.11.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Według mnie, i jest to chyba jeden z lepszych sposób to jak wyżej Destroyerr napisał rejestr. Do tego jakiś prosty loader bibliotek. Załóżmy tworzysz metodę, która dodaje do tablicy wszystkie znalezione biblioteki .php w katalogu "x", a potem je tylko ładujesz. Rejestr - Dodajesz tu obiekty, które Ci są obecnie potrzebne. Lub też możesz zamiast rejestru korzystać z singletonów. Jak wolisz - do twojej dyspozycji.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 19:54 |