Compare Sizes
Register
English Français Español

Eloquent

0
PHP Data Access Libraries (ORM, ActiveRecord, Persistence)
Name
Eloquent
Webseite
Github / Bitbucket / Sourceforge
License
Latest version
How schema is defined?Model class properties
Code generation
Can be used in Any FrameworkJa Through Capsule
Automated CacheJa
Anti-patterns (purposely included)Eloquent is a God Class; Global functions; DB Conection is global;
Audience
Dependencies
Simplicity
no rating
Enterprise Compliance
3.0/5 1 rating
Minimum PHP Version
Basic Features
PDO SupportJa
Transparent support for NoSQLNein Eloquent is built on Query Builder. Perhaps moloquent? Also - Through Caching backend, but not as ORM native persistence.
How to invoke db-vendor-specific extensions?Ja Through Query Builder / RAW queries.
Array as a persistence
RestAPI as a persistence
JSON string as a persistence
Same model, multiple persistences
Basic Single-record operations (C,R,U,D)
Table Name MappingJa Same as model class name by default
Field Name Mapping- Through accessors/3rd party extension
Map Entity to SubQueryNein Must be physical table.
Map property to expressionNein Must be physical table
Map native types (DateTime)Ja Accessors and Mutators
User-defined types (e.g. "23 USD")Ja Accessors and Mutators
Map field of related Entity ('currency' = currency_id->Model Currency.name)- Relationship, but only single record.
Map field to sub-query on related entity (Client.balance = Client->orders->sum(total))Nein
Entity to join multiple tables (adding new record populates both tables)Nein
Criteria, Scope, Conditions (Model will refuse to work with records that does not match criteria)
Support model-level criteria- Global Scope (querying only)
Soft-deleteJa Trait and Scope
Domain Model Criteria- Scopes, but not in domain model.
Expression-based conditionJa through Query Builder
Criteria Compliance (new record must match condition)
Dynamic criteria
Query Building (Convert Model into Query object for further SQL tweaking)
Convert Model into Query ObjectJa Model is a Query object. See: Model::where()
Raw expressionJa DB::raw()
Nested/Composite Queries/ExpressionsNein
Reference domain-model field in queryNein No fields. Only properties.
field, where, order, limitJa
options, rollup, partition
UPDATE, DELETE, INSERT query building
REPLACE, TRUNCATE
SHOW, DESCRIBE, CALL
ALTER, CREATE query building
User-defined query template
full support for OR conditions- Partial
Use Domain logic in multi-record updateNein
Data Fetching (different ways to retrieve data from database)
Get All Data (2x array)Ja
Associative Array (id=>value)Ja lists()
Select only required fields
Typecasting (e.g. DateTime)
Import (multiple records)
Respect domain model mapping (and criteria)
Single rowJa
Single ValueJa
Single ColumnJa
IteratorJa
Bypass persistence mappingJa ?? (e..g prevent date from being transformed into Carbon)
Loading and Saving individual records
Load by ID
Load by other field
Read-only Models
Model without primary key
Specify fields to loadNein Fields load with SELECT *
Save only sends dirty fieldsJa
Guarded / Fillable propertiesJa Prevents "create($_GET)" from messing up important fields.
Object Hierarchy Model
Admin extends User, adds criteria (is_admin=1)Nein
Admin extends User, adds accessible fieldsNein
Extend model, add Join (Disjoined SubTypes)Nein
Extend model change table
Relations/References (One model can relate to another model. NOT A TABLE JOIN)
Model can define relation to other ModelJa Relations
One-to-Many
One-to-many traversal strategyReturns array of objects that may either be pre-loaded with record data or only contain IDs (lazy-loaded).
Lazy/Eager-loadingJa
One-to-One
Many-to-Many
Deep Many-to-Many traversal.
Cross-Persistence traversal
Cross-persistence joins, aggregation, reporting
Multi-persistence joinNein
UNION existing modelsNein
Domain-model Aggregation
Model to Model join
Multi-persistence UNIONNein
Behaviours / Hooks
Before/After operation
Override standard C,R,U,D operations
Persistence-specific hooks (to modify Query)
User-defined hooks
Auditing
Global Auditing
Store old/new field values
Revert action (undo) and replay (redo)Nein
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 revisionsJa
Integration
Field meta-information provided
UI extensionsNein
API extensions
Products
English
Public
Public
2017-12-21 16:45:09
View changes

User reviews and comments

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