1
0
mirror of synced 2024-12-13 22:56:04 +03:00
doctrine2/manual/features.php
2006-11-30 15:19:46 +00:00

70 lines
2.8 KiB
PHP

<pre>
FEATURES:
GENERAL FEATURES
- Fully object-oriented following best practices and design patterns
- Multiple databases
- Database connection pooling with connection-record -registry
- Runtime configuration (no XML needed!)
- Very modular structure (only uses the needed features)
- The whole framework can be compiled into a single file
- Leveled configuration (attributes can be set at global, connection and table levels)
DATABASE ABSTRACTION:
- A DSN (data source name) or array format for specifying database servers
- Datatype abstraction and on demand datatype conversion
- supports PDO
- Database query profiling
- Query caching
- Sequence / autoincrement emulation
- Replace emulation
- RDBMS management methods (creating, dropping, altering)
- SQL function call abstraction
- SQL expression abstraction
- Pattern matching abstraction
- Portable error codes
- Nested transactions
- Transaction isolation abstraction
- Transaction savepoint abstraction
- Index/Unique Key/Primary Key support
- Ability to read the information schema
- Reverse engineering schemas from an existing database
- LIMIT / OFFSET emulation
OBJECT RELATIONAL MAPPING:
General features:
- Validators
- Transactional errorStack for easy retrieval of all errors
- EventListeners
- UnitOfWork pattern (easy saving of all pending objects)
- Uses ActiveRecord pattern
- State-wise records and transactions
- Importing existing database schemas to Doctrine ActiveRecord objects
- Exporting Doctrine ActiveRecords to database (= automatic table creation)
Mapping:
- Composite, Natural, Autoincremented and Sequential identifiers
- PHP Array / Object data types for columns (automatic serialization/unserialization)
- Gzip datatype for all databases
- Emulated enum datatype for all databases
- Datatype abstraction
- Column aggregation inheritance
- One-class-one-table inheritance as well as One-table
- One-to-many, many-to-one, one-to-one and many-to-many relations
- Self-referencing relations even for association table relations
- Relation aliases
Object population:
- DQL (Doctrine Query Language), an EJB 3 spec compliant OQL
- <b>The limit-subquery-algorithm</b>
- OO-style query API for both DQL and raw SQL
- Object population from database views
- Object population through raw SQL
Transactions and locking:
- Pessimistic offline locking
- Savepoints, transaction isolation levels and nested transactions
- Transactional query optimization (gathering of DELETE statements)
</pre>