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)
+