Motivation

From Outlet

Jump to: navigation, search

I created this project because I want a transparent data mapper (like hibernate), that goes well with PHP (I don't want it to feel like java). It must have the following:

  • Clean entities that are decoupled from the mapper. No 'extends ActiveRecord', or 'extends Persistent', or ::save() methods on my entities.
  • Entities that look good when you 'print_r' them. When I print_r or var_dump an entity it should only show what I expect there: the entity properties. No database configuration, mappings, connection objects, or collections cache.
  • Public properties for table fields. No need to create getters and setters for each field.
  • Straight SQL (almost) for selecting and retrieving entities. I don't want to learn another variant of SQL (hql, dql, linq, or criteria) when I already know SQL.

Also this library is not about database abstraction (although it does provide a little abstraction). It is about using objects to model domain concepts. So I don't want to write another language for accessing the database. SQL is very well suited to some operations and I want to be able to take advantage of the differentiating features of the database I'm using. PDO provides enough abstraction for my taste.