Development:DB layer 2.0: Difference between revisions
From MoodleDocs
mNo edit summary |
|||
Line 14: | Line 14: | ||
** 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 | ** support ? and :param and $1 parameter types | ||
** global $DB | ** global $DB | ||
** profiling, logging and exceptions | ** profiling, logging and exceptions |
Revision as of 08:03, 13 May 2008
Note: This article is a work in progress. Please use the page comments or an appropriate moodle.org forum for any recommendations/suggestions for improvement.
Template:Development:dmllib 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 and $1 parameter types
- 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: N/D
Meetings
- MDM-20080501 Dmllib 2.0 - Penny, Petr and Eloy.
- MDM-20080508 Dmllib 2.0 - Penny, Petr, Nicolas and Eloy.
- MDM-20080513 Dmllib 2.0 - Penny, Petr, Nicolas and Eloy.
Ideas
- Object Relational Mapping style
- There are already some PHP ORM tools: