Objektum-relációs leképezés PHP-ben
Nováki Szilárd
Bevezetés
- Motiváció
- A legtöbb webes alkalmazás használ valamilyen adatbázist.
- Az adatbáziskezelő osztályok, függvények írása nehézkes lehet.
- Objektum-relációs leképezés
- A relációs modell és az objektum orientált szemlélet integrációja.
- Jelentősen könnyíti az adatbáziskezelést.
DB_DataObject
- PEAR adatbázis absztrakcióra épül
- adatbázis alapján generál sémát és a kezelő osztályokat
- Tagváltozókban tárolja az oszlopok értékeit
Propel
- Creole PHP5 alapú adatbázis absztrakcióra épül
- XML leírás alapján generál adatbázis sémát és az azt kezelő osztályokat
- getter, setter függvényeket generál
- Hatékony, gyors adatbáziskezelést valósít meg
Propel
$author = new Author();
$author->setFirstName("Leo");
$author->setLastName("Tolstoy");
$book = new Book();
$book->setTitle("War & Peace");
$book->setAuthor($author);
// save (insert, in this case) the new object
$book->save();
Propel
$c = new Criteria();
$c->add(BookPeer::TITLE, "War%", Criteria::LIKE);
$c->setLimit(10);
$books = BookPeer::doSelect($c);
if ($books) {
print "Found books!";
foreach($books as $book) {
print "" . $book->getTitle() . ", by " .
$book->getAuthor()->getFirstName();
}
} else {
print "Did NOT find any book!";
}
G2DB
- Szintén Creole PHP5 alapú adatbázis absztrakcióra épül
- Automatikusan kezeli az adatbázistáblákat
- Lassabb, mint a Propel
Összefoglalás
- Az objektum-relációs eszközök megjelenése jelentősen könnyíti az adatbáziskezeléssel kapcsolatos munkákat
- Áttekintettük a DB_DataObject, Propel és G2DB objektum-relációs eszközöket
- A DB_DataObject sémák alapján dolgozik, azonban nem kezel idegen kulcsokat
- A Propel PHP5 alapú gyors, hatékony eszköz
- A G2DB használata ezek közül talán a legegyszerűbb