Red Bean PHP

2016-10-24 17:09:26
RedBeanPHP is an easy to use ORM for PHP. It's a Zero Config ORM lib that 'automagically' builds your database schema.
PHP Data Access Libraries (ORM, ActiveRecord, Persistence)
Red Bean PHP
Github / Bitbucket / Sourceforge
LicenseNew BSD / GPL
Latest version4.3.2
How schema is defined?Automatically discovered on the fly.
Code generation
Can be used in Any FrameworkYes
Automated Cache
Anti-patterns (purposely included)
Simplicity0 no rating
Enterprise Compliance0 no rating
Minimum PHP Version
Basic Features
PDO Support
NoSQL Integrate TransparentlyNo Build around plain queries.
How to invoke db-vendor-specific extensions?- Can add SQL code chunks.
Array as a persistenceNo
RestAPI as a persistenceNo
JSON string as a persistenceNo
Same model, multiple persistences
Persistence Mapping (must support C,R,U,D)
Table Name MappingNo mapping no longer supported.
Field Name MappingNo mapping no longer supported.
Map Entity to SubQueryNo
Map property to expressionNo
Map native types (DateTime)Yes
User-defined types (e.g. "23 USD")
Map field of related Entity ('currency' = currency_id->Model
Map field to sub-query on related entity (Client.balance = Client->orders->sum(total))No
Entity to join multiple tables (adding new record populates both tables)No
NoSQL (must be transparent to domain logic)
MongoDB supportNo
Criteria, Scope, Conditions (Model will refuse to work with records that does not match criteria)
Support model-level criteriaNo
Domain Model CriteriaNo
Expression-based conditionNo
Criteria Compliance (new record must match condition)No
Dynamic criteriaNo
Query Building (Convert Model into Query object for further SQL tweaking)
Convert Model into Query ObjectNo
Raw expressionYes
Nested/Composite Queries/ExpressionsNo
Reference domain-model field in queryNo
field, where, order, limitNo
options, rollup, partition- not sure.
UPDATE, DELETE, INSERT query buildingNo
SHOW, DESCRIBE, CALL- Automatic schema alter / discovery.
ALTER, CREATE query buildingNo
User-defined query templateNo
OR deep nested conditionsNo only raw query
Use Domain logic in multi-record updateNo
Data Fetching (different ways to retrieve data from database)
Get All Data (2x array)Yes exportAll()
Associative Array (id=>value)
Single row
Single Value
Single Column
Bypass persistence mapping
Loading and Saving individual records
Load by IDYes
Load by other fieldNo
Load if expressionYes
Load respects Scope (model-level condition)No
Specify fields to loadNo
Save only sends dirty fields- (there is Dirty support, so I assuming it is supported)
Guarded / Fillable properties
Object Hierarchy Model
Admin extends User (is_admin=1)No
Model that represent Orders of single User.No
Extend model, add Join (Disjoined SubTypes)No
Extend model change tableNo
Relations/References (One model can relate to another model. NOT A TABLE JOIN)
Model can define relation to other ModelYes
One-to-many traversal strategypre-fetch and store objects in an array.
Deep Many-to-Many traversal.- only with to-one references. Executes multiple queries.
Cross-Persistence traversalNo
Multi-persistence Mapping (some data from SQL, others MongoDB)
Multi-persistence joinNo
UNION existing modelsNo
Multi-persistence UNIONNo
Multi-persistence value linking (current_sensor_value)No
Behaviours / Hooks
Before/After operation
Hooks for C,R,U,D operations
Persistence-specific hooks (to modify Query)
User-defined hooks
Mapping strategy
How to set-up
Store old/new field values
Date of creation, modification
User/IP creation, modification
Store incremental revisions
Revert action (undo)
Custom events
Custom fields, table
Store in CSV
Access to record-specific history
Access Control
Implementation Strategy
Single-system global access scopeNo
Meta-information (allows exploration by UI widgets)
Implementation StrategyBeans support "meta" data actually contain data type or some user-data.
UI Widget can fetch list of Model Fields
UI Widget can get Field type, default value, caption, hint
field storing reference to another Model can map into DropDown
Like 0
  • 2016-10-19 01:38:35
    2016-10-24 17:09:26
  • Products
  • Public
  • Creative Commons License CC-BY-SA 3.0 / GNU FDL

Build comparison tables or lists about everything !

It's free and fast to publish data into original tables

Create a table