Sposób na GLOBALNY konfig aplikacji, Co o tym sądzicie? |
Sposób na GLOBALNY konfig aplikacji, Co o tym sądzicie? |
14.05.2016, 08:23:15
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
-------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
14.05.2016, 11:19:21
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 -------------------- |
|
|
14.05.2016, 14:21:41
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 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
23.05.2016, 20:34:09
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 033 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ć. |
|
|
24.05.2016, 20:12:39
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 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
25.05.2016, 10:07:16
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 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
17.06.2016, 19:16:11
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 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
Wersja Lo-Fi | Aktualny czas: 13.06.2024 - 05:19 |