Trac
13.7.2007 Towards 1.0
Doctrine 1.0 RC 1 will be released on 31 th of August 2007. Before that the following things must be done:
General: * Split the whole framework into packages
Bugs: * Fix DQL bugs * Fix all trac tickets
API: * Unify the API for naming conventions attributes * Rewrite the Compiler to support packages and custom packaging * Aggregate support for Doctrine_RawSql
Plugins: * Release Doctrine_Search beta * Release Doctrine_AuditLog beta
Documentation: * Update docs for NestedSet? * Add more examples for eventlisteners * Full documentation for Doctrine_Query under DQL chapter * Full documentation for configuration attributes * Documentation for 'how to create adapters'
Testing: * Add more tests to DBAL drivers * Add complete tests for NestedSet? plugin * Rewrite the test suite memory handling
29.6.2007 Development continues
From the previous blog post Doctrine has evolved few hundred revisions. So I can fairly say the development is more active than ever before.
Some updates: - deprecated Doctrine_Db and merged its functionality into Doctrine_Connection - rewritten manual - rewritten event listener API - query cache - lots of minor bugs fixed
11.6.2007 New features
As you may have noticed Doctrine development has been very active lately. Naturally this means some new features have been added. I'm just going to put a brief description of one of the new features.
1. Array fetching mode. This neat little feature can be used to boost up your sites performance.
$q = new Doctrine_Query();
$users = $q->from('User u')->leftJoin('u.Phonenumber p')->execute(array(), Doctrine::FETCH_ARRAY));
foreach ($users as $user) {
foreach ($user['Phonenumber'] as $phonenumber) {
// do something
}
}
btw. a friend of mine (jepso @ Doctrine irc channel) is coding a doc tool which Doctrine will soon use for its documentation. This means all the new features will be fully documented and the old ones will be documented much better.
25.5.2007 Doctrine taking huge leaps
Since the last blog post, everything has gone smoothly. I've been able to refactor not only the DQL API but the whole relation model of Doctrine. The relation parsing now resides at Doctrine_Relation_Parser whereas in the past it was in Doctrine_Table. The relation parser is also much smarter than the old one, allowing for example, the following syntax (in class User):
$this->hasMany('Phonenumber');
Now you may wonder how can this be possible. Its possible if the two classes use Doctrine naming conventions (here Phonenumber would have user_id and User class would have field called id).
Also I've rewritten the snapshot model. In the past Records kept snapshots of the collections they owned in Doctrine_Record::$originals. Now the API has become much cleaner as collections contain the snapshot themselves.
In the next blog post I'll tell about the new features of DQL API. Stay tuned.
15.5.2007 Refactoring starts
The Google Summer of Code has started of well. During the past few days I've refactored the core of Doctrine (Record, Collection, Hydrate and Query classes). The refactoring phase will take quite long, but is definately worth the cost: after this phase its much easier to add new features.
Currently the DQL API code is quite ugly and hard to understand for end-users. Hopefully after the refactoring phase the code will be easy to learn and comprehend.