Piwik 2.9.0 is a new major release of Piwik! In this release we have focused on reliability and stability. 58 tickets have been closed by more than 8 contributors!
[...]
2bb6d2d fix DebugPDOStatement for usage with execute
ceee8a9 fixed a getter function without '$con'
f30aa35 Fixed diff task combined with skipSql
9087851 Fix namespace support
b9a8ad7 Fix small error in the QueryBuilder Doc for TemporalType
a5226c9 fix bug when adding previously removed relations
52d8a76 fix for CASE expression in query with offset in ms sql
0cfa3db Fix accidental type conversion in sluggable behavior.
c1fc85d Fixed issue with migrations and decimal or numeric table size
a6c3218 fix scheduledForDeletion for CrossFK w/ refPhpName
70c18d2 Undefined index fix
2193ba4 Fixed MigrationManager to use queries and charset settings
d37b4cd Fixed object builder toArray withColumn
7e173bc Fixed test assertion
4a5eba2 Fixed Sluggable behavior combining with symfony_i18n
c4b61cc Bugfix for PHP < 5.3.0
f6031de Foreign Keys default behaviors managment (resolves issue #390)
130429f Fix some issues. Closes #684
193f736 Fix a couple of mistakes
3ea2f2d Issue #677: Set back reference when calling add Provided tests for testing if all references are set for crossreferences before saving
4495b9f fixed transaction leak when exception different from PropelException is thrown
3bf0689 fix deleting related objects
8f75133 Fixed #651. Stupid typo.
5b7878a clean
54362ae fixed urls to trac tickets propel.phpdb.org/trac/ticket -> trac.propelorm.org/ticket
75a15f1 fix generated CS of SoftDelete in forceDelete()
937ff8b fix timing issues in TimestampableBehaviorTest
fbc1b3a fix some introspections, coding style
93c6a0f Fixes JOIN duplication issue when default join type equals given join type (issue #373)
dcace44 Bugfix for join equality when default join type is used
644931d Fixed typos
efb83ee fixed __clone() for PropelCollections containing scalar values
366e1df fixed test
288e91d Fixed #603
For more information, take a look to the changelog. Thanks to the propel team and have fun to everyone.
I updated the requirement component to 1.0.4. The new version contains the validator example. By creating this example, i added two new features for upcoming releases, so stay tuned :-).
The example is shipped with a validator collection which contains all needed validator items. It would definitely make more sense, if you would name that validator collection more specific like "IsValidTableForGermany" (or "IsValidUserName" if you want to switch context). All validator items need a injected table example class. Since the requirement component is dealing with automatically injection, you don't have to take care about this :-).
As you can see in the example class, all you have to do is to inject the item you want to validate and call "isMet()". The example itself creates a bunch of tables by choosing random properties.
What are the benefits of using the requirement component also for validation? Reusable and simple testable validator items and a endless flexibility of item combination by using the power of existing and and or condition.