Don’t Repeat Yourself (DRY) kako je i opisano na samoj Wikipediji predstavlja načelo razvoja softvera čiji je krajnji cilj smanjenje ponavljanja informacija, odnosno u ovom slučaju PHP koda. Kao i u svemu što radimo uvijek nam je želja posao pojednostaviti što je više moguće, pa samim tim i olakšati.
Sam DRY pristup ću vam pokušati pojasniti na primjeru spajanja na MySQL server, recimo niže je klasičan primjer koji svi prvo nauče.
1 2 3 4 5 6 | $con = mysql_connect('localhost', 'korisnickoime', 'lozinka'); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("nazivbaze", $con); |
Ono što bi DRY pristup zahtijevao, a i primjer iznad učinio čitljivijim je izdvajanje varijabli u kojima će biti svi potrebni podaci.
1 2 3 4 5 6 7 | $db_host = 'localhost'; $db_user = 'korisnickoime'; $db_pass = 'lozinka'; $db_baza = 'nazivbaze'; $mysql = mysql_connect($db_host, $db_user, $db_pass); mysql_select_db($db_baza); |
Kako se host, naziv baze i korisnički podaci ne mijenjaju kroz aplikaciju možete definirati konstante.
1 2 3 4 5 6 7 | define('DB_HOST', 'localhost'); define('DB_USER', 'korisnickoime'); define('DB_PASS', 'lozinka'); define('DB_BAZA', 'nazivbaze'); $mysql = mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_BAZA); |
Recimo da često nakon testiranja sa jednog servera prelazite na drugi, kako ne biste svaki puta morali mijenjati host, naziv baze i korisničke podatke. Jednostavno korištenjem if petlje definirate dio za produkciju, dio za testno okruženje i promjenom vrijednosti konstante LIVE_SERVER upravljajte hostom, nazivom baze i korisničkim podacima.
1 2 3 4 5 6 7 8 9 | define('LIVE_SERVER', true); // true za produkciju, false za testni server if(LIVE_SERVER) { // definirajte host, naziv baze i korisničke podatke // u slučaju kada radi na produkciji (live okruženje) } else { // definirajte host, naziv baze i korisničke podatke // u slučaju kada radite u testnom okruženju } |
Ili koristite predefinirane PHP varijable.
1 2 3 4 5 6 7 | if ($_SERVER['HTTP_HOST'] == 'www.nazivdomene.com') { // definirajte host, naziv baze i korisničke podatke // u slučaju kada radi na produkciji (live okruženje) } else { // definirajte host, naziv baze i korisničke podatke // u slučaju kada radite u testnom okruženju } |
© 2009 HDonWEB | Sva prava pridržana | Web dizajn: Ivan Mišić
Preuzimanje sadržaja bez prethodne dozvole nije dopušteno!
što reći nego za svaku pohvalu edukacijskog materijala ;-)