diff --git a/manual/features.php b/manual/features.php new file mode 100644 index 000000000..f1870353e --- /dev/null +++ b/manual/features.php @@ -0,0 +1,69 @@ +
+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 + - The limit-subquery-algorithm + - 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) +