![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 663 Pomógł: 6 Dołączył: 3.06.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Skoro po kilku konsultacjach doszedłem do wniosku, że jednak nie warto stosować tablicy $GLOBALS do przechowywania ustawień witryny zaczałem pisać klasę settings (IMG:http://forum.php.pl/style_emoticons/default/czarodziej.gif) Wygląda ona mniej więcej tak:
Chciałbym teraz wczytać do tablicy '$tablica' zmienne z pliku 'settings.ini' który wyglądał będzie tak: Kod db_name = nazwa_bazy db_host = nazwa_hosta itd... Pierwsze pytanie: -- Czy istnieje jakaś fajna funkcja która wczyta za mnie zmienne z pliku .ini? Może ktoś ma i mógłby mi wkleić? (znalazłem już dlatego pytanie jest nieważne - funkcja $ini = parse_ini_file('file.ini'); ) -- Chciałbym jednak zapytać czy uważacie że to dobry (albo zły) sposób na napisanie takiej klasy. Pytam bo nie chce juz tego poprawiać więcej (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) Drugie pytanie dotyczy posta którego nie mogę teraz odnaleźć ale pisało w nim, że: Cytat (..)metody magiczne zaciemniają kod(..) -- Czy powinienem unikać metody magicznej? Muszę przyznać, że w tym wypadku znacznie poprawiłaby ona czytelność kodu. Ten post edytował Black-Berry 20.02.2008, 13:05:21 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Wygoda jest tu na drugim miejscu. Co ma klasa News wspólnego konfiguracją Twojego systemu? Nic, a przynajmniej bardzo niewiele.
Powinieneś przekazać jej tyle danych, ile jest jej potrzebne. Nawet przekazanie obiektu $settings jako parametr w konstruktorze jest kontrowersyjne, choć lepsze niż dziedziczenie po jakimś dziwnym obiekcie. W idealnym przypadku powinieneś posiadać dodatkową klasę NewsManager/NewsBase/NewsHelper/NewsVendor/CoTamChcesz, która się zajmie rozmową z resztą systemu. Możesz wykorzystać coć na podobieństwo wzorca Prototype/Fabryki obiektów.
Omijasz w ten sposób te niedogodności. Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 15:49 |