[ rajkoBekrija @ 13.04.2009. 01:05 ] @
E ovako ljudi, posto vecina u web razvoju koristi MySQL (MyISAM) kao data storage mislim da je dobro da se napravi neki tip active recorda. Ok, kao sto vecina voli da filozofira u ovim dijelovima foruma :), za pocetak mislim da je najvaznije da se vidi kako bi se u kodu vrsila manipulacija sa tim klasama. Trebali bi napisati kako bi voljeli da se vrse CRUD akcije. Ne bih koristio propel i ostale frameworke posto mislim da su preglomazni, spori, pogotovo kod zahtjeva za JOINom. Uvjeren sam da mozemo napraviti extra flaksibilno i lako upotrebljivo rjesenje. Pa evo da ja prvi pocnem, znaci primjer Code: // CREATE $RU = new RUser(); $RU -> username = 'test'; $RU -> password = 'pass'; $RU -> date_added = 'NOW()'; // reserved mysql word $RU -> Insert(); // UPDATE $RU -> password = 'pass2'; $RU -> Update(); // DELETE $RU -> Delete(); // RETRIVE $Sql[] = Rec::Safe('username = ? OR password = ?', $UsernameVar, $PasswordVar); $Sql[] = Rec::Safe('date_added > ?', date('Y-m-d', strtotime("-1 day"))); $Sql[] = Rec::Safe('Departments.id IN (?)', $ArrayOfIds); $Sql[] = Rec::Safe('UserInfo.first_name LIKE ?', '%'.$FirstNameVar); foreach( RUser::WithDepartments::WithUserInfo::Select($Sql) as $User){ // Ovo ce prouzrokovati JOIN usera sa Departments i sa UserInfo u jednom query-u print $User -> username.' - '.$User -> UserInfo -> first_name.' '.$User -> UserInfo -> last_name."\n"; foreach($User -> Departments as $Dept) print $Dept -> name."\n"; } i sada je naravno bitno da se vidi kako bi izgledale te klase. npr RUser.php Code: class RUser extends NekoImeKlase{ const TABLE = 'users'; const PRIMARY = 'user_id'; public $user_id; public $username; public $password; public $date_added; public $Departments; public $UserInfo; public static $RELATIONS = array( array('Departments', RDepartments, self::HAS_MANY), array('UserInfo', RUserInfo, self::HAS_ONE) ); } Dajte da vidim vase prijedloge |