Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sposoby zapisywania Configów
Forum PHP.pl > Forum > PHP
Avatarus
Witam
Zastanawiam się jak zrobić efektywny system zapisywania konfigów panleu sterowania.
Obecnie mam ten oparty o bazę. Czyli jest tabele w niej są zapisywanie ustawienia itp.
Potem w skrypcie funkcja która wczytuje z bazy te dane.
Proste...no niby tak..ale moim zdaniem to zbędne zapytanie SQL, które można pominąć, bo te dane nie są tak często zmieniane.

Mam kilka pomysłów, pomóżcie mi wybrać najbardziej efektywny, który najlepiej oszczędzi serwer smile.gif
1: Plik np. Config.php
W nim będą zapisywane zmienne wraz z konkretnymi newsami np: $ilosc_pokazywanych_newsow=5; itp

Zalety, łatwo dołączać do każdego skryptu, jednak znowu trzeba wywołać includa lub require.....

2: Zrobić Sekcje początkowe w każdym pliku w który będzie się korzystać z konfiguracji. Zasadniczo w moim mini CMS są 4 taki pliki reszta skryptów dziedziczyło by te dane.
więc wyglądało by to tak:
  1. <?php
  2. ///////////////////////////////
  3. //SEKCJA KONFIGURACYJNA
  4. ///////////////////////////////
  5. $ilosc_pokazywanych_newsow=5;
  6. ///////////////////////////////
  7. //KONIEC SEKCJI
  8. ///////////////////////////////
  9. ........[tu treść skryptu]......
  10. ?>


Plusy to fakt że nie trzeba korzystać z bazy, ani nie trzeba includowac plików.
Minus: może być trudne do zapanowania jeśli wiele plików musi odczytywać konfig (oczywiście mowa o tych które nie mogą go dziedziczyć.

3. Pozostać przy obecnym układzie bazowym

Macie jakieś sugestie...
Z góry dziękuje za pomoc.
Pozdrawiam.
nrm
4. Zostań przy bazie, a zapytanie skeszuj. W zależności od tego co za informacje tam trzymasz to może się nawet okazać, że pierwsze zapytanie tylko wykona się przy setupie a potem już dlugo, dlugo nic winksmiley.jpg a po co? zalezy od danych, czasami trzeba powiazac takie dane a w bazie lepiej, latwiej i szybciej.
.radex
ja raczej byłbym za osobnymi plikami - łatwe do zapanowania i szybkie.
nowotny
Ja używam plików ini z podziałami na sekcje... Ładuje się szybko: $config=parse_ini_file('plik.ini'); a potem tylko $config['ustawienie'] i tyle... Zalety: można zmieniać ustawienia przy braku dostępu do bazy...
Cysiaczek
Jeszcze XML, choć wydaje się z początku mało wygodny.
Wogóle, to nie jest ważne, jak są dane przechowywane, ale czy zostały właściwie napisane mechanizmy ich cechowania. Słusznie mówi ~normanos, że najważniejszy jest cache. Mi się podoba zserializowany obiekt, którego jeśli nie ma, to jest odczytywany konfig smile.gif

Pozdrawiam.
.radex
wadą jest to, że musisz odpowiednio te pliki zabezpieczyć (np. za pomocą htaccess), po za tym ini i xml zawsze są troszkę wolniejsze.
GrayHat
Cytat(radex_p @ 2.02.2008, 21:52:34 ) *
wadą jest to, że musisz odpowiednio te pliki zabezpieczyć (np. za pomocą htaccess), po za tym ini i xml zawsze są troszkę wolniejsze.


A czy kolega zapisze konfigurację połączenia z bazą danych w bazie danych?? Skoro i tak musi przeczytać oddzielny plik konfiguracyjny to nie ma problemu, żeby dodać kolejną sekcję winksmiley.jpg czas wykonywania ten sam a ograniczamy te zapytanie winksmiley.jpg
Np plik ini:

Kod
[setup]
  db.adapter = PDO_MYSQL
  db.config.host = localhost
  db.config.username = root
  db.config.password = xxxxxx
  db.config.dbname = xxxxx

  site.baseurl = http://php.pl
  site.title = Wortal PHP.PL


Odnośnie .htaccess - w czym problem stworzyć plik z zawartościa:
Kod
deny from all

questionmark.gif

Szczególnie jak się posiada dobrą architekturę aplikacji np podział na katalogi:

/public
/private

w katalogu public wyłączamy np mod_rewrite a w private dajemy deny from all... to podstawy tworzenia architektur oprogramowania winksmiley.jpg
nrm
Cytat(GrayHat @ 2.02.2008, 22:26:09 ) *
A czy kolega zapisze konfigurację połączenia z bazą danych w bazie danych?? Skoro i tak musi przeczytać oddzielny plik konfiguracyjny to nie ma problemu, żeby dodać kolejną sekcję winksmiley.jpg czas wykonywania ten sam a ograniczamy te zapytanie winksmiley.jpg

To mogą być 2 różne rzeczy. Przykład:
- konfiguracja w pliku tzw. rozruchowa (baza, ścieżki itp.) np.konfiguracja odpalenia frameworka i jego komponentów (db, sesje itp)
- konfiguracja samej _APLIKACJI WEBOWEJ_ -> tu nie ma co dawać przykładu bo co aplikacja to inne wymagania w każdym razie chodzi o to co jest związane z stricte z samą aplikacją, a to właśnie czasami warto/można/trzeba wsadzać w bazę.

Mam nadzieję, że jasno to pokazałem.
jarmiar
Ja osobiście pliki konfiguracyjne robię w ten sposób:

config.php

Kod
login<!!!!>hasło<!!!>host<!!!>baza<!!!>ilosc_newsow<!!!>tytul<!!!>itp


Potem wyciągam za pomocą p[ętli no i oczywiscie zabezpieczam ten plik przez .htaccess

Pozdrawiam
nowotny
No właśnie wszystko zależy co się robi... jak masz 3 ustawienia na krzyż, z czego 2 to username i hasło do bazy to wystarczą pliki... jak coś bardziej skomplikowanego to już baza...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.