![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Witam, od pewnego czasu piszę aplikację w PHP i nadszedł czas kiedy chciałbym w niej zrobić porządki... Posłużę się przykładem:
Przepuśćmy mamy taką funkcję:
Co chcę osiągnąć? Chciałbym wszystkie ustawienia przenieść do jednego pliku w którym miałbym wszystkie ustawienia np setting.php:
Aby kod ostatecznie wyglądał:
Aby w przyszłości jeśli chciałbym zmienić jakieś ustawienia wystarczyło żebym zmienił w pliku setting.php zamiast szukać wszystkiego w kodzie. Proszę o jakąś podpowiedz pod czym tego szukać. Dodam że zmienne globalne zostały wyłączone. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
include ?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 264 Pomógł: 20 Dołączył: 19.08.2007 Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim) Ostrzeżenie: (0%) ![]() ![]() |
To zależy jak masz stworzony kod...
Ja na przykład też tworzę aplikację w której mam mnóstwo takich ustawień i wszystkie trzymam w pliku ini. Cała moja aplikacja składa się z głównej klasy, w której są wykonywane i wczytywane inne pliki i aplikacje. Plik ini prasuje w tej głównej klasie więc w innych plikach wykonywanych w tej klasie bez problemu mogę wykorzystać wszystkie ustawienia z pliku ini. Nie wiem jak to będzie u ciebie wyglądało, ale możesz też wczytać ustawienia do sesji i z nich korzystać. Sesje są tablicami super globalnymi, wiec będziesz miał do nich dostęp wszędzie. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
include ? Jeśli użyje include przed funkcją zmienna nie będzie widoczna w funkcji. Przykład (ust.php): oraz test.php:
test.php zwróci mi liczbę 8, a nie 13 (8+5). Może nie do końca napisałem o co mi chodzi, mam około 30 funkcji i w większości mam jakieś ważne ustawienia, dlatego chciałbym w jakiś sposób załączyć raz plik z ustawieniami a następnie ich używać w każdej z funkcji. Oczywiście istnieje wyjście używać w każdej funkcji include - jednak ja szukam innego wyjścia. Istnieje funkcja global, ale chyba nie spełni moich oczekiwań. Do $_SESSION również nie chcę tego wczytywać za dużo tych ustawień jest. Ten post edytował Rysh 14.02.2010, 00:17:42 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Powszechnie przyjęta praktyka to pliki .ini i .cfg, jeśli musisz trzymać ustawienia w pliku .php (by nikt tego nie mógł pobrać) to najlepiej w postaci tablicy zserializowanej.
Jeśli chcesz zmiennych dostępnych w całym skrypcie to używaj tablic superglobalnych lub wprowadzaj tablicę ustawień do każdej funkcji jako parametr. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Zainteresuj się klasami statycznymi.
Przykład
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wookieb.
W takim razie czas rozpocząć przygodę z klasami i obiektami (tego się obawiałem (IMG:style_emoticons/default/smile.gif) ). Pozdrawiam. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 32 Dołączył: 8.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Plik ustawienia.php:
Plik PHP:
wynik: Cytat Wynik = 38
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Tylko nie global wewnątrz funkcji! To bardzo zła praktyka i prędzej czy później zniknie z PHP. Po to są tablice superglobalne i tablice jako parametr funkcji + oczywiście obiektówka, by nie trzeba było tego robić. Inaczej Twoja funkcja niczym się nie różni od kawałka zaincludowanego kodu, czy zatem możemy wtedy jeszcze mówić o funkcji? Nie róbmy bałaganu w kodzie, gdy przerabiam jakiś kod i widzę pełno global to mnie mdli.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 32 Dołączył: 8.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
@up: też mnie mdli na ten widok... Pracuję na etat w dużym sklepie komputerowym, mój poprzednik który zrobił stronę, miał nawyki do:
I jeszcze zapytania mysql typu: I jeszcze to: Pracuję już w tej firmie około 3 miesiące i do dziś nie dałem rady wyłapać wszystkich tych "smaczków" Ten post edytował altruista2 14.02.2010, 12:09:41 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 29.09.2025 - 00:00 |