![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
Witam
mam pytanie co sądzicie o takim sposobie rozwiązania na globalną konfigurację aplikacji Klasa kontrolera konfiguracji
plik z konfiguracją
Użycie konfiguracji w klasach
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kilka uwag:
- Metoda getValue() nie sprawdza czy klucz istnieje po wczytaniu konfiguracji (blok else). - Zmieniłbym nazwę getValue() na krótsze get() - wiadomo, że chodzi o wartość dla klucza. - Rozbijasz parametry na $moule i $var - IMHO zbędne, ale jeśli już tak robisz, to każdy moduł powinien być innym plikiem konfiguracyjnym. - W pliku konfiguracyjnym nie definiujesz na początku zmiennej $configs. - W ogóle to zwracaj tablicę bez definiowania nazwy zmiennej (patrz przykład poniżej) i przypisuj ją przez - Proponuję rozszerzyć to o poszukiwanie w ścieżce, tak aby można było pobrać pojedynczy, zagnieżdżony element np:
config.php
- Ostatnia rzecz, proponuję pójść w kierunku DI zamiast globalnego singletona, dzięki takiemu podejściu testowanie będzie o wiele łatwiejsze. Ten post edytował vokiel 14.05.2016, 11:19:55 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
Podoba mi się poszukiwanie po ścieżce, wizualnie lepiej wygląda, podobało mi się bardzo w Laravelu a nie zaimplemetowałem tego u siebie nie wiem czemu.
Co do Di, nie użyłem w tym przypadku bo łatwiej było mi zaimplementować Static, nigdy nie pisałem testów więc nie widziałem w tym problemu. Jednak jak ktoś wytknie palce lepiej widać, nazwa zmiennej tablicy faktycznie jest zbędna. Ten post edytował LowiczakPL 14.05.2016, 14:25:02 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
i co najważniejsze nie rób tego tak:
Bo uzależniłeś teraz Twój config od jedynej słusznej implementacji z tablicą w lokalizacji conf/conf.php, co pewnie nawet nie działa bo będzie szukał tego lokalnie tam gdzie będziesz tego używać. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
Tam jest względna ścieżka ale uprościłem link do minimum na potrzeby prezentacji ale fakt niepotrzebnie, ...
... wezmę się za klasę poprawię ją i zaprezentuję po liftingu. Ten post edytował LowiczakPL 24.05.2016, 20:13:38 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mi tam od razu nasunęło się 10 pytań "a co jeśli..." ;)
- jak masz kilka plików cfg, to przydałaby się metoda która po prostu wgra te pliki (uwzględniając to, co zrobić gdy dany klucz już istnieje) - jeśli już masz kilka plików, to mogą być one w różnych formatach np ini, json itd. - skoro już możesz pobierać wartości, to czasami przydaje się wartość domyślna która zostanie zwrócona gdy nie ma odpowiedniego klucza - a jeśli już możesz pobierać coś z pliku, to możesz go również generować/nadpisać To tak jakbyś chciał to rozbudować w przyszłości... Ten post edytował !*! 25.05.2016, 10:08:07 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
Przysiadłem dziś do klasy i zastosowałem się do wskazówek, jak to wygląda po zmianach Waszym zdaniem.
plik z konfiguracją ogloszenia.php
użycie klasy
nowa klasa
Ten post edytował LowiczakPL 17.06.2016, 19:22:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 09:02 |