Czyli co trzy głowy to nie jedna :) Cerber to kolejna biblioteka, którą chciałbym przedstawić. Do wydania stabilnej wersji jeszcze długa droga i pojawi się ona nie wcześniej niż Zephyr. Biblioteka ta będzie służyła do komunikacji z bazą danych. Główne założenia to: ORM, ActiveRecord, obsługa cache’owania. Całość będzie oparta o PHP Data Objects, ale o całkiem innym interfejsie.
Przykładowy interfejs (pobieranie danych) prezentuję poniżej. Jak na razie jest to tylko sama idea (nic nie zostało jeszcze zaimplementowane), dlatego też prosiłbym o komentarze – co poprawić, usunąć, a może podejść do tego z zupełnie innej strony :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // wygenerowane zapytanie: // select `id`,`nazwisko` from `users` where `imie` = 'Bartek' and `wiek` < 25 order by `wiek` desc limit 5,10 // przykład 1 $result = $db -> get('users', array('id', 'nazwisko')) -> where(new CerCond('imie', CerCond::EQ, 'Bartek'), CerCond::COND_AND, new CerCond('wiek', CerCond::LT, 25)) -> orderBy('wiek', CerQuery::DESC) -> limit(5, 10) -> execute(); // przykład 2 (inna budowa zapytania + dodatkowo sprecyzowane typy zmiennych) $cond = new CerCond( new CerCond('imie', CerCond::EQ, 'Bartek', CerCond::PARAM_STR), CerCond::COND_AND, new CerCond('wiek', CerCond::LT, 25, CerCond::PARAM_INT) ); $query = $db -> get('users', array('id', 'nazwisko')); $query -> where($cond); $query -> orderBy('wiek', CerQuery::DESC); $query -> limit(5, 10); $result = $query -> execute(); // wynikiem działania metody execute() będzie tablica obiektów CerResult |
P.S. Wie ktoś może jak zrobić w WordPressie, żeby kolorował składnię PHP? CodeColorer :)