Compare Sizes
Français Español

Red Bean PHP

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 /
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)
no rating
Enterprise Compliance
no rating
Minimum PHP Version
Basic Features
PDO Support
Transparent support for NoSQLNo 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
Basic Single-record operations (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
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
full support for OR 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)
Select only required fields
Typecasting (e.g. DateTime)
Import (multiple records)
Respect domain model mapping (and criteria)
Single row
Single Value
Single ColumnYes
Bypass persistence mapping
Loading and Saving individual records
Load by IDYes
Load by other fieldNo
Read-only ModelsNo
Model without primary keyNo
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, adds criteria (is_admin=1)No
Admin extends User, adds accessible fieldsNo
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
Cross-persistence joins, aggregation, reporting
Multi-persistence joinNo
UNION existing modelsNo
Domain-model AggregationNo
Model to Model joinNo
Multi-persistence UNIONNo
Behaviours / Hooks
Before/After operation
Override standard C,R,U,D operations
Persistence-specific hooks (to modify Query)
User-defined hooks
Global AuditingNo
Store old/new field values
Revert action (undo) and replay (redo)
Reactive actions
Store log in any persistence
Override, Add fields to audit log
Custom events
Access to record-specific history
Date of creation, modification
User/IP creation, modification
Store incremental revisions
Field meta-information provided
UI extensionsNo
API extensions
Dec. 21st 2017 11:31:25 AM
View changes

User reviews and comments

No comments yet. Be the first to leave your review.