![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 25.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich jako nowy użytkownik tego forum
![]() Siedzę ostatnio nad własnym frameworkiem i zatrzymałem się przy plikach konfiguracyjnych, więc zwracam się z pytaniem do Was. Jaki typ konfiguracji byłby według Was najlepszy i jak najszybszy: pliki XML, INI, czy też PHP (return array(...); itd.) Właściwie zastanawiam się nad wyborem między XML, a PHP, z czego bardziej przychylny jestem drugiej opcji, jednak tutaj pojawia się kolejny problem, mianowicie, nie wiem jak skonstruować klasę konfiguracji: Czy wykorzystać ArrayObject i sprawić, żeby instancja klasy reprezentowała dany plik konfiguracyjny, czy też "ładować wszystko do jednego worka", czyli zrobić taki jakby rejestr zawierający całą konfigurację? A przy okazji rejestrów - zaimplementowałem już rejestr (taki ogólny, do przechowywania wszelkich danych globalnie) - czy warto podczepić pod niego konfigurację? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Kazdy robi to jak chce.
Xml czy Array czy Csv lub Ini to bez roznicy co uwazasz za bardziej wygodne stosujesz. Ja konfiguracje bibliotek trzymam w array z php-a bo w sumie maja one tylko cos wspolnego z programista, a konfiguracje komponentow i plugin-ow mam w xml bo poprostu sa dosyc duze i zeby kazdy mogl sobie sam ustawic. Cytat A przy okazji rejestrów - zaimplementowałem już rejestr (taki ogólny, do przechowywania wszelkich danych globalnie) - czy warto podczepić pod niego konfigurację? Rejestr,Singleton co tylko ze chcesz jak nie uzywam ani jedngo poprostu mam cache konfiguracji i jesli juz dana konfiguracja zostala juz gdzies zaladowana to nie laduje jej x2 -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 25.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź.
W sumie dobry pomysł z tym cachowaniem, chociaż wydajnościowo myślę że wyjdzie podobnie jak w przypadku rejestru, ale jeszcze to sprawdzę. A co do typu konfiguracji podsunąłeś dobrą kwestię, więc zostanę przy array, a inne typy zostawię do modułów. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Definiujesz sobie interfejs w oparciu o który Twój framework będzie mógł pobierać informacje.
2. Tworzysz osobną klasę dla każdego źródła konfiguracji (XML, YAML, PHP itd.). Przede wszystkim na start powinieneś udostępnić sobie konfigurację w XML/PHP. Ten post edytował Crozin 25.04.2012, 18:45:12 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Cytat W sumie dobry pomysł z tym cachowaniem, chociaż wydajnościowo myślę że wyjdzie podobnie jak w przypadku rejestru Tak ale np taka konfiguracje xml/ini/csv trzeba przeprasowac wiec robisz cache z przeparsowana konfiguracja do array-a z php A to co napisal @Crozin to uwazalem za oczywiste wiec nie wspomnialem aplikacja powinna pozwalac na rozne typy konfigruacji -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 25.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
No wiadomo że oczywiste
![]() ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
XML - ze względu na wszechobecne wsparcie tego formatu, podpowiadanie/sprawdzanie składni w edytorze oraz podpowiadanie konkretnej struktury dokumentu (schema/dtd).
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 25.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
To jeszcze pozostaje pytanie, czy klasę konfiguracji zrobić jako rozszerzenie ArrayObject, czy też wywoływać przy użyciu getterów i setterów?
Co do ArrayObject, chyba każdy wie jak to wygląda, ale z getterami i setterami chodzi mi o wywoływanie ustawień na zasadzie: W pliku konfiguracyjnym:
I aby wywołać, np. nazwę użytkownika bazy:
Ten post edytował PotasK 25.04.2012, 20:48:13 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Użycie getterów i setterów, które wygeneruje Ci IDE, udostępni:
1. Pełną kontrolę nad przekazywanymi/zwracanymi wartościami konfiguracyjnymi. 2. Banalnie prostą dokumentację. 3. W pełni statyczną (czytaj: lepszą) strukturę danych - będzie się to też wiązało z koniecznością utworzenia klasy dla każdego złożonego zasobu w konfiguracji. Cytat I aby wywołać, np. nazwę użytkownika bazy: [...] Skoro piszesz o OOP to raczej:
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Taki tam przykład jak mógłbyś taką klasę konfiguracji w dość prosty sposób zrobić. Trochę wzorowana na działaniu klasy Zend_Config. Tam to trochę "lepiej" wygląda: http://framework.zend.com/manual/en/zend.c...troduction.html Ten post edytował by_ikar 26.04.2012, 09:47:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 23:25 |