Doctrine

Produits
2016-10-19 01:41:13
PHP Data Access Libraries (ORM, ActiveRecord, Persistence)
Doctrine
Site webhttp://www.doctrine-project.org
Github / Bitbucket / Sourceforgehttps://github.com/doctrine/doctrine2
LicenceMIT
Dernière version2.5.5
How schema is defined?PHP, XML, YAML
Code generationOui schema-tool
Can be used in Any FrameworkOui composer / packagist
Automated Cache
Anti-patterns (purposely included)ORM.
Audience
DependenciesMedium: ±5 packages.
Simplicité0 aucune note
Enterprise Compliance5.0 1 note
Minimum PHP Version5.4
Basic Features
PDO SupportOui Yes
NoSQL Integrate Transparently
How to invoke db-vendor-specific extensions?Oui DBAL
Array as a persistence
RestAPI as a persistence
JSON string as a persistence
Same model, multiple persistences
Persistence Mapping (must support C,R,U,D)
Table Name MappingOui Yes
Field Name MappingOui Yes, (Annotations in PHP)
Map Entity to SubQueryNon Must be physical table
Map property to expressionNon Must be physical field
Map native types (DateTime)
User-defined types (e.g. "23 USD")Oui Type class
Map field of related Entity ('currency' = currency_id->Model Currency.name)- Specific record only
Map field to sub-query on related entity (Client.balance = Client->orders->sum(total))Non
Entity to join multiple tables (adding new record populates both tables)Oui Associations
NoSQL (must be transparent to domain logic)
MongoDB support
Neo4j
MemCache
Criteria, Scope, Conditions (Model will refuse to work with records that does not match criteria)
Support model-level criteria
Soft-deleteOui Extension
Domain Model Criteria
Expression-based condition
Criteria Compliance (new record must match condition)
Dynamic criteria
Query Building (Convert Model into Query object for further SQL tweaking)
Convert Model into Query Object
Raw expression
Nested/Composite Queries/Expressions
Reference domain-model field in query
field, where, order, limit
options, rollup, partition
UPDATE, DELETE, INSERT query building
REPLACE, TRUNCATE
SHOW, DESCRIBE, CALL
ALTER, CREATE query building
User-defined query template
OR deep nested conditions
Use Domain logic in multi-record update
Data Fetching (different ways to retrieve data from database)
Get All Data (2x array)
Associative Array (id=>value)
Single row
Single Value
Single Column
Iterator
Bypass persistence mapping
Loading and Saving individual records
Load by ID
Load by other field
Load if expression
Load respects Scope (model-level condition)
Specify fields to load
Save only sends dirty fields
Guarded / Fillable properties
Object Hierarchy Model
Admin extends User (is_admin=1)
Model that represent Orders of single User.
Extend model, add Join (Disjoined SubTypes)
Extend model change table
Relations/References (One model can relate to another model. NOT A TABLE JOIN)
Model can define relation to other Model
One-to-Many
One-to-many traversal strategy
Lazy/Eager-loading
One-to-One
Many-to-Many
Deep Many-to-Many traversal.Non
Cross-Persistence traversal
Multi-persistence Mapping (some data from SQL, others MongoDB)
Multi-persistence joinNon
UNION existing modelsNon
Multi-persistence UNIONNon
Multi-persistence value linking (current_sensor_value)- Through behaviour
Behaviours / Hooks
Before/After operation
Hooks for C,R,U,D operations
Persistence-specific hooks (to modify Query)
User-defined hooks
Auditing
Extension
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 scopeNon
Meta-information (allows exploration by UI widgets)
Implementation Strategy
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
J'aime 0
  • 2016-10-18 22:11:55
    2016-10-19 01:41:13
  • Produits
    English
  • Publique
    Publique
  • Creative Commons License CC-BY-SA 3.0 / GNU FDL

Créer des tableaux comparatifs ou listes sur tout !

C'est gratuit et rapide de créer des tableaux originaux

Créer un tableau