Development:DB layer 2.0: Difference between revisions
From MoodleDocs
m (→Meetings) |
mNo edit summary |
||
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Template:Development:dmllib 2.0}}{{Moodle_2.0}}__NOTOC__ | |||
{{Template:Development:dmllib 2.0}} | |||
== Objectives == | == Objectives == | ||
Line 14: | Line 12: | ||
** Full abstraction: Hide underlying libraries (adodb, pdo...) and drivers to Moodle developers completely. | ** Full abstraction: Hide underlying libraries (adodb, pdo...) and drivers to Moodle developers completely. | ||
** Make it so that the database object can be subclassed - this means for unit tests that want to test database access, the test framework can override necessary methods | ** Make it so that the database object can be subclassed - this means for unit tests that want to test database access, the test framework can override necessary methods | ||
** support ? and :param | ** support ? and :param parameter types (independently of the param types supported by each driver). | ||
** global $DB | ** global $DB | ||
** profiling, logging and exceptions | ** profiling, logging and exceptions | ||
Line 23: | Line 21: | ||
* Well documented (PHPDocs + use examples) | * Well documented (PHPDocs + use examples) | ||
* Tasks, bugs and progress tracked in MDL-14679 | * Tasks, bugs and progress tracked in MDL-14679 | ||
* Due date: | * Due date: June 24th 2008 | ||
== | == See also == | ||
* [ | * [[Development:XMLDB Documentation|XMLDB Documentation]]: where both xmldb and ddl stuff is explained. | ||
* [[Development:DDL functions|DDL functions]] - Documentation for all the Data Definition Language (DDL) functions available inside Moodle. | |||
* | * [[Development:DML functions|DML functions]] - Documentation for all the Data Manipulation Language (DML) functions available inside Moodle. | ||
* | |||
Latest revision as of 23:32, 25 July 2008
Template:Development:dmllib 2.0Template:Moodle 2.0
Objectives
- Switch to prepared statements - using placeholders and preparing statements protects against sql injection
- Remove the need for data to be add/strip slashed all over the place in the code.
- Enable easier and productive unit tests.
Requirements
- 100% cross-db
- OOP implementation:
- Full abstraction: Hide underlying libraries (adodb, pdo...) and drivers to Moodle developers completely.
- Make it so that the database object can be subclassed - this means for unit tests that want to test database access, the test framework can override necessary methods
- support ? and :param parameter types (independently of the param types supported by each driver).
- global $DB
- profiling, logging and exceptions
- Easy to use (consistent and similar to current dmllib 1.0)
- Easy to migrate (provide documentation and utilities to help on that)
- Complete unit testing (self)
- Easy unit testing (moodle - real and mockup)
- Well documented (PHPDocs + use examples)
- Tasks, bugs and progress tracked in MDL-14679
- Due date: June 24th 2008
See also
- XMLDB Documentation: where both xmldb and ddl stuff is explained.
- DDL functions - Documentation for all the Data Definition Language (DDL) functions available inside Moodle.
- DML functions - Documentation for all the Data Manipulation Language (DML) functions available inside Moodle.