Piszę system logowania (rejestracja, logowanie, autoryzacja, prywatne wiadomości, wraz z panelem administracyjnym) i właśnie wzięłem się za konfigurację. Chcę, aby system był jak najbardziej konfigurowalny, więc dane będę przechowywał w jednej tabeli MySQL wg. wzoru:
nazwa wartości (klucz), wartość
Wartości będzie kilkadziesiąt.
Chciałem poprosić o radę dotyczącą wczytywania wartości z tego configu - czy napisać funkcję która zwróci wszystko w tablicy asocjacyjnej $config, czy też napisać funkcję, która jako parametr przyjmie nazwę wymaganej wartości a zwróci jej zawartość? Chodzi mi tylko i wyłącznie o prędkość działania skryptu. Zaznaczam, że każda funkcja wczytuje średnio 4-7 wartości z configa.
Niestety, przetestowanie obydwu rozwiązań i porówanie prędkości nie jest za bardzo możliwe, ponieważ mam już napisane około 1600 linijek kodu, a podmienianie wartości "na próbę" zajęłoby mnóstwo czasu.
Krótki schemat funkcji o których mówiłem:
1 - wczytanie wszystkiego na raz i następnie wywoływanie poszczególnych elementów tablicy
<?php function wczytajConfig() { // wczytanie każdej wartości z MySQL do tablicy config wg wzoru: $config['nazwa_wartosci'] = 'wartosc pola'; return $config; } // nastepnie uzycie tego w kazdej funkcji po kilka razy: function jakas_funkcja() { if ($config['jakas_zmienna'] == 'tak') { // wykonanie odpowiednich // czynnosci, gdy jakas_zmienna = "tak" } // dalsza część funkcji.... // kolejne wczytywania zmiennych z $config } ?>
i sposób drugi (wczytywanie wartości tylko w chwili, gdy jest potrzebna)
<?php function wczytajDanaWartosc ($nazwa_wartosci) { // zapytanie do MySQL i przypisanie zmiennej $wartosc wartosci danego pola return ($wartosc) } // i kiedy w kodzie potrzebna jest wartość danego pola... if (wczytajDanaWartosc ($jakas_wartosc) == "tak") { // wykonanie odpowiednich // czynnosci, gdy jakas_zmienna = "tak" } // dalsza częśc kodu.... // kolejne wywołania wartości wg. powyższego wzoru ?>
Będę bardzo wdzięczny za rady i sugestie.