Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
RedBeanPHP
Open source object-relational mapping software library

RedBeanPHP is an independent, free, BSD licensed, open-source object–relational mapping (ORM) software written by Gabor de Mooij. It is a stand-alone library, not part of any framework. RedBeanPHP is an on-the-fly object–relational mapper, this means there is no upfront configuration. The system relies on conventions entirely and adapts the database schema to fit the needs of the program. This way, it strikes a balance between NoSQL and traditional RDBMS solutions.

We don't have any images related to RedBeanPHP yet.
We don't have any YouTube videos related to RedBeanPHP yet.
We don't have any PDF documents related to RedBeanPHP yet.
We don't have any Books related to RedBeanPHP yet.
We don't have any archived web articles related to RedBeanPHP yet.

Features

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

RedBeanPHP is the first library known to adopt the on-the-fly approach towards ORM. As such it has a big influence on other libraries. RedBeanPHP inspired many other projects to embrace this approach towards object mapping. Similar libraries have appeared for .NET,1 Python,2 JavaScript,3 Java,4 Erlang,5 ColdFusion6 and Objective-C.7

Integration

While being an independent library, plugin modules have been developed for various popular frameworks like: Laravel,8 CodeIgniter,9 Kohana,10 Silex11 and Zend Framework.12 Besides integration modules, some frameworks ship with RedBeanPHP out-of-the-box like The Nibble Framework.13

History

RedBeanPHP first appeared in 2009 on GitHub.14 The first publicly available version was 0.3.3. RedBeanPHP has been developed by Gabor de Mooij, a software developer from the Netherlands. Because RedBeanPHP is very accessible and it does not hide the SQL language it is used by Universities to teach database programming.15 According to a forum post by Gabor himself the library has been inspired by a rant about object relational mapping systems by Ted Neward called the 'ORM, Vietnam of computer science'.1617

Reception

Based on the reviews and presentations available on the web, the overall reception of RedBeanPHP seems to be positive.18192021 However the library is less suitable for projects with existing databases and does not support custom table and column mappings, for instance it is not possible to use table prefixes.22 Also, none of the major frameworks has incorporated the library.

See also

  • Computer programming portal

References

  1. LimeBean, RedBeanPHP-inspired data access layer for .NET https://github.com/Nick-Lucas/LimeBean/

  2. PyBean, RedBeanPHP inspired ORM for Python https://pypi.python.org/pypi/pybean/0.2.1

  3. "Tayr". npm. Retrieved 2016-07-02. https://www.npmjs.com/package/Tayr

  4. RedBean4J RedBean inspired ORM for Java (now abandoned) https://github.com/dkornishev/redbean4j

  5. RedBean-Erlang https://github.com/niahoo/redbean-erlang

  6. RedBeanCF https://github.com/Prefinem/RedBeanCF

  7. CocoaBean, RedBeanPHP inspired library for Objective-C https://github.com/RJR/CocoaBean

  8. RedBeanPHP bundle for Laravel http://bundles.laravel.com/bundle/redbean33

  9. codeigniter-redbean plugin for the CodeIgniter Framework http://jenssegers.be/projects/codeigniter-redbean

  10. Kohana Integration module https://github.com/shideon/kohana-redbean

  11. RedBean Service Provider for Silex https://connect.sensiolabs.com/profile/ivoba/project/redbean-service-provider

  12. Zend Framework integration of RedBeanPHP http://richardjh.org/blog/using-redbeanphp-orm-zend-framework/

  13. Nibble Framework: a plugin-based framework for PHP http://nibble-development.com/nibble-framework-php-plugin-based-framework/

  14. [1] First commit of RedBeanPHP on Github https://github.com/gabordemooij/redbean/commit/61e46ec96562ba0fe6dd70f897ee2bcbf2665f38

  15. http://www.cs.wcupa.edu/rkline/wp/mysql-php.html The West Chester University Computer Science Department RedBeanPHP course http://www.cs.wcupa.edu/rkline/wp/mysql-php.html

  16. Post on forum detailing inspiration for RedBeanPHP https://groups.google.com/forum/?fromgroups#!searchin/redbeanorm/vietnam/redbeanorm/bUD8lBub2i0/0iPvvcs7WugJ

  17. The Vietnam of Computer Science Archived 2010-04-30 at the Wayback Machine http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx

  18. SitePoint Review of RedBeanPHP https://www.sitepoint.com/introduction-redbean/

  19. Interview CEO Zurmo, mentions RedBeanPHP http://7php.com/interview-zurmo-crm/

  20. RedBeanPHP Review by Dreamincode[usurped] https://archive.today/20140528070214/http://www.dreamincode.net/forums/blog/1267/entry-4106-a-simple-elegant-php-orm-library-redbeanphp/

  21. Review of RedBeanPHP with existing database http://www.6zou.net/tech/review-of-redbeanphp-work-with-existing-database.html

  22. Checklist suitable projects on the RedBeanPHP website https://redbeanphp.com/about#checklist