Subject: MDM-20080513 Dmllib 2.0
Participants: Penny, Nicolas, Petr, Eloy
Transcript: Skype chat Nomenclature: red text = still undecided.
Agenda:
- From previous meeting + docs comments:
- moodle unit tests (using dmllib stuff)
- exercise and lams - cut them loose (don't worry about them)
- journal and workshop (will need to convert them for 2.0)
- Discuss Interface proposa
- Quick review of requirements
- Quick review of previous meeting - OOP section
- Implementation details, determine 5 milestones with times (each Milestone 1 META bug)
- M1: initial commit
- M2: 4 DBs passing all tests
- M3: core stuff, pre magic_quotes off tasks
- M4: BREACKAGE: big hacking, post magic_quotes off tasks
- M5: Moodle tests using real & mockup dmllib (HEAD)
- API=>OOP quick tour and Examples
- big hack=>Migration (very important!)
- tests=>Testing
- Problems
- Ideas and comments
- Next meeting
Summary:
OOP:
- database instances database manager that will use generators (DDL stuff). Only one default manager to be used by all drivers (although can be overriden). The database manager will have, as public API, all current methods in ddllib.php. All this stuff goes to lib/ddl.
- discussion about public/private attributes and public API (moodle_database and moodle_database_manager).
- going to use __construct instead of class names as constructors (Eloy is alone against that).
- exception are a must. they will be thrown up to one global error handling fallback (see Mahara) until modules start doing its job handling exceptions.
- placeholders publicy supported only will be ? and :names. Any DB requiring different ones (PostgreSQL $1...) will perform the conversion as needed (internally).
- bound query emulation to work around some pgsql limitations
Tests:- table prefix is separated so it's easy to create moodle_database instances with different prefixes.
- able to test execute test agains multiple DBs by:
- Having some interface in admin to define them
- Make tests happen against all them
- If no alternate DBs are defined, tets default to current one (config.php one)
- will go to dml/simpletest and ddl/simpletest
Logging:Start using one own table (instead of current adodb one). Will measure total execution time per statement.
Milestones:- M1: (BC compatible) initial commit (HEAD). (May 15th - 23:00 GMT +1 +DST - after next meeting)
- M2: (BC compatible) 4 DBs passing all tests (HEAD) (May 27th)
- M3: (BC compatible) core stuff, pre magic_quotes off tasks (HEAD) (starting on June 11th, to June 24th)
- M4: (BREAKAGE!) big hacking, post magic_quotes off tasks (HEAD, BRANCH, PATCH??) (starting on June 11th to June 24th)
- M5: Moodle tests using real & mockup dmllib (HEAD) (starting on May 27th, to ....)
Note: between May 28th and June 11th, Eloy is away 8 days and Petr 14 days (must think what can be done in this period).
Next Meeting:
May 15th 2008 - 10:00 EU Time