ugrás a tartalomhoz

Config beállítások miért fájlban, miért nem adatbázisban?

Anonymous · 2006. Május. 2. (K), 10.45
Sziasztok!

Van egy dilemmám. Ha valaki megír egy PHP programot ő legtöbb esetben szövegfájlban tárolja a program beállításait. A kérdésem miért nem adatbázisban? Én ott tárolnám kivéve a kapcsolat beállításokat.

Köszi
 
1

nem mindegy

inti · 2006. Május. 2. (K), 11.38
ha te használod a php programot, akkor nyilván hozzáférsz a (mondjuk config.php) állományhoz, és könnyedén szerkesztheted, és ezt csak be kell include-olni a programnak. Az adatbázis alapú beállításokhoz kezdetben létre kell hozni a táblákat, és sokkal macerásabb a beállítások kezelése (feltéve, ha nincs rá írva felület). Másrészt a config.php könnyebben backupolható, csak mindig tartasz belőle, egy másolatot valahol, és visszamásolod, ha gond van. Adatbázisnál, ha elszáll, ez sokkal nagyobb para.

Ellenben, ha nagy mennyiségű beállítás van, pl: userek adatai, stb. akkor mindenképp az adatbázis a célszerű, de szerintem nem ezekre a beállításokra gondoltál. A felületről módosítható beállításoknak is nyilván az adatbázis a célszerű háttér, de azt hiszem látszik, hogy itt elkülönül a kétféle beállítás kategória.
2

adatbázis + text

Pred · 2006. Május. 2. (K), 17.04
Egyet értek, hogy ha a DB elszáll, akkor a beállítások is.. viszont ha már van DB, akkor teljesen mindegy, hogy a beállítások elszállnak, mert a tartalom is elvész.. Emellett az adatbázis kicsit rugalmasabb... Az adminisztráció is (viszonylag) egyszerűen megoldható még különböző adatokkal is..

Egy saját példa (még fejlesztés alatt):
az DB:

CREATE TABLE `var` (
  `varID` int(11) NOT NULL auto_increment,
  `varName` varchar(32) NOT NULL default '',
  `varValue` text NOT NULL,
  `varDesc` text NOT NULL,
  `varFormat` text NOT NULL,
  PRIMARY KEY  (`varID`),
  KEY `varName` (`varName`)
);
A varFormat mezőben tárolom a változó megjelenítésére vonatkozó infókat:
pl:
text,32
<input type='text' maxlength='32'>
select,table,rights,rightID,rightName
Ez egy listát fog csinálni a 'rights' táblából:

  <select>
   <option vlue='rightID_értéke'>rightName_értéke</option>
  </select>
 
select,const,érték1;érték2;érték3,cimke1;cimke2;cimke3

 <select>
  <option value='érték1'>cimke1</option>
  <option value='érték2'>cimke2</option>
  <option value='érték3'>cimke3</option>
 </select>
  
textarea ->remélem egyértelmű :D

A kiolvasásra meg van egy egyszű függvényem, ami paraméterként a változó nevét kapja (ezt a rekordot megkeresi a táblában), majd visszaadja az értékét...

Itt ilyen dolgokat tárolok:
- nyitólap tartalma
- használati feltételek
- SQL debug (igen, nem)
- oldal URL-je
- kontakt adatok

Természetesen a ritkán változó, vagy az adatbázis eléréséhez szükséges bállításokat én is include-olom... Van ami nem kerülhet be a DB-be...
3

Majdnem mindegy

Bártházi András · 2006. Május. 2. (K), 18.59
Két megfontolás szólhat a szöveges tárolás mellett: szöveges fájlt könnyebb lehet szerkeszteni, illetve hogy az adatbázisműveletek lehetnek drágák is, célszerű minél inkább csökkenteni azokat. Ezek egyike sem igazán döntő érv, ha neked nem okoznak ezek gondot, akkor dönts belátásod szerint.
4

Részemről...

Pred · 2006. Május. 2. (K), 19.34
Az adatbázis műveletek valóban időigényesebbek (ha drágaságon ezt érted), azonban én azon egyszerű megfontolás alapján választottam mégis azt, hogy pl az egytemen tiltják a 21-es portot, ezért nem tudom editorból szerkeszteni.

Tudom, hogy lehetne PHP-val is felülírni a conf. fájlt, viszont ez (szerintem) sokkal macerásabb, mint egy lekérdezés.

De ahogy Te is mondtad, valóban szinte mindegy... A választás a fejlesztő kezében van

Ha valakit érdekel a konkrét megvalósítása a dolognak, jelezze és adok accot... (pred.hun{kukuc}gmail{ponty}com)
5

ini

-zsolti- · 2006. Május. 3. (Sze), 00.12
Én szekcionált ini fájlokat használok, azért mert jól átlátható, könnyen szerkeszthető, és a parse_ini_file() könnyen csinál belőle tömböt. Egyelőre csak kézzel szerkesztem (egy textareába beolvasva a fájl tartalmát), de nem lepődnék meg, ha lenne hozzá valami osztály, ami ezt kulturáltabban megoldja (név-érték, input mezőkben).

Adatbázisban nem tárolnám a már említett erőforrásigényesség miatt. De ha mégis erre lenne szükség, ezt az ini-s megoldást akkor is egyszerűen át lehetne ültetni adatbázisra.
6

Meg tudom mondani a megjelenést

Pred · 2006. Május. 3. (Sze), 20.21
Azért használom az adatbázist is erre a célra, mert meg tudom mondani a változó megjelenési formáját is. Ez is megoldható természetesen .ini vagy sima text fájlban. Nem mondom, hogy tökéletes lett a végeredény (ezalatt értem a sebességet is), de rugalmas és könnyen változtatható... Nekem bejön :D