RedBeanPHP is different from other
ORM systems because it requires no configuration in
XML,
YAML or
JSON. It adapts the database schema based on the needs of the program. All tables and columns are created on-the-fly, without upfront configuration or mapping. It automatically adds columns to tables if necessary and changes the type of the column to match its content requirements. When the developer is done developing and no more schema changes are expected, the schema can be frozen for deployment to production environments. After freezing the database no more schema alterations take place. Relations among tables are mapped in the same way: by convention. For instance, to create a one-to-many relationship between two tables one assigns an array to the property bearing the name of the target table. This automatically creates the table as well as the required columns. Code example, demonstrating a simple
CRUD operation and a relation: R::setup(); $movie = R::dispense('movie'); $movie->title = 'Beans in space'; $character = R::dispense('character'); $character->name = 'hero'; $movie->ownCharacterList[] = $character; $id = R::store($movie); == Influence ==