home / releases / 0_7
**David Persson (37):**

  - Updating skip message in `CldrTest`.
  - Adding tests for `Php` catalog adapter.
  - Removing superfluous `break` from `Code` catalog adapter.
  - Updating order of `see` tags in `Code` catalog adapter. Updating ref.
  - Adding tests for `Code` catalog adapter.
  - Removing dependency on `Inflector` from `Gettext` catalog adapter.
  - Updating `Gettext` catalog adapter to use constants for magic numbers.
  - Updating `Gettext` catalog adapter to check for existence of file.
  - Updating order of tags, adding todo in `Gettext` catalog adapter.
  - Filtering items with empty ids in catalog adapter.
  - Adding reference link to `Gettext` adapter.
  - Refactoring PO parser in `Gettext` adapter.
  - Adding plural forms to be included in generated PO header.
  - Adding tests for `Gettext` catalog adapter.
  - Removing superfluous dependencies from `Gettext` adapter test.
  - Updating code formatting to conform with standards.
  - Adding test for writing comments and flags using `Gettext` adapter.
  - Removing assertions in symmetry test for `Gettext` adapter.
  - Adding test for reading and writing validation for `Gettext` adapter.
  - Fixing writing of PO files with plurals.
  - Removing whitespace.
  - Updating skipping of items with an empty id in `Gettext` adapter.
  - Updating `Gettext` adapter docblocks.
  - Removing assign by ref in `Gettext` adapter for now.
  - Updating logic for _translated_ in `_merge()` of catalog `Base` adapter.
  - Updating handling of _translated_ values. Allowing it to be string.
  - `Message::translate()` to make count absolute before passing.
  - Fixing typo in `Message::translate()` docblock.
  - Adding escaping tests for `Gettext` adapter. Simplifying replace logic.
  - Using HEREDOC for data in `Php` catalog adapter test.
  - Adding test for reading data containing anonymous functions with `Php`.
  - Fix code formatting and typo in `Gettext` adapter.
  - Adding tests for `Cldr` catalog adapter.
  - Renaming `Base` catalog adapter and moving one directory up.
  - Finishing rename of `Base` catalog adapter.
  - Updating all g11n classes to use type hinting for arrays where possible.
  - Adding tests and mock for base catalog adapter.

**Joël Perras (29):**

  - Optimizing `Parser`.
  - Optimizing `Object::_init()` a bit further.
  - Removing dead test case. Another small optimization to `Object::_init()`.
  - Optimizing `Object::_init()` a bit further.
  - Fixing broken cache adapters.
  - Modifying `util\Validator` to use `filter_var()` where possible.
  - Adding missing doc block for `util\Validator::`.
  - Adding missing doc block to `core\StaticObject`::.
  - Adding initial strategies implementation to `core\Adaptable`.
  - Removing previous implementation of strategies.
  - Adding paths for `strategy`. Fixing coding standard violation.
  - `core\Adaptable` refactor.
  - Partial strategy implementation.
  - Adding single-strategy implementation to Adaptable.
  - Updating strategies implementation to handle multiple strategies.
  - Adding `method_exists()` check for strategy method call.
  - Applying strategies to `Session::read()` and `Session::write()`.
  - Adding `Json` cache strategy.
  - Adding tests for `Encoder` & `Json` strategies.
  - Updating `storage\Session` tests for new exception messages.
  - Refactoring `core\Adaptable` for more explicit library location.
  - Updating `storage\Session::read()` and relevant session adapters to return all data when no key is specified.
  - Updating documentation in `storage\Session`.
  - Cleaning up documentation for `storage\Session` and associated adapters.
  - Adding `Cookie::check()` method & test cases.
  - Adding `storage\session\adapter\Php::check()`, with associated tests.
  - Adding @filter tags to relevant class methods in `storage\Session`  and     `storage\Cache`.
  - Re-naming `Encoder` strategy to `Base64`. Renaming `EncoderTest` to `Base64Test`.
  - Renaming all instances of `Encoder` class with `Base64`.

**Mariano Iglesias (1):**

  - Fixing issue where `Libraries::load()` will not load files that are part of the include_dir setting.

**Nate Abele (90):**

  - Adding test class overrides in `\g11n\LocaleTest` to fix console environment assumptions.
  - Adding documentation to `\net\http\Router`, and replacing `Router::connect(null)` syntax with `Router::reset()`. Adding routing shortcut syntax so that `'Controller::action'` is interpreted the same as `array('controller' => 'controller', 'action' => 'action')`.
  - Adding iPod and Android to mobile browser list in `\action\Request`.
  - Adding type hinting to constructor `$config` arrays and all applicable `$options` parameters. Removing explicit array type casts where possible.
  - Fixing issue in `Html` helper where multi-resource calls to `script()` and `style()` with `'inline'` set to `false` were not rendering correctly.
  - Removing unused template files.
  - Adding `config/bootstrap/media.php` to contain rules for handling different media types, and serving static assets.
  - Trimming out proprietary and lesser-used media formats from `\net\http\Media`.
  - Small memory optimization to `\net\http\Router`.
  - Simplifying code in `\core\Adaptable` and derivatives.
  - Removing unused variables in `\template\Helper`, optimizing default execution case in `\util\String::insert()`.
  - Removing unused method `\template\helper\Html::docType()`. Deprecated by HTML5.
  - Fixing typo in docblock of `\util\Collection`.
  - Fixing optimization case in `\util\String::insert()`.
  - Adding tests for `\view\adapter\Simple`.
  - Refactoring default library assignment / handling.
  - Minor optimizations and removal of unused use cases in `\core\Object::_init()` and `\template\View::_init()`.
  - Refactoring `config/bootstrap/cache.php` so that default configuration no longer throws errors if cache directories are not writeable and APC is unavailable.
  - Dropping `config/switchboard.php` and moving existing filters to `config/bootstrap/action.php`.
  - Adding type hinting to constructor `$config` arrays and all applicable `$options` parameters. Removing explicit array type casts where possible.
  - Minor optimizations and removal of unused use cases in `\core\Object::_init()` and `\template\View::_init()`.
  - Removing extra typecast in `\net\http\Route::__construct()`.
  - Minor optimizations and removal of unused use cases in `\core\Object::_init()` and `\template\View::_init()`.
  - Updating `app/config/bootstrap.php` with default session cookie configuration, updating corresponding comments.
  - Small refactoring and renaming in `\session\adapter\Cookie`.
  - Enabling query strings in route-generated URLs by passing in a `'?'` key, which can be set to a string or array.
  - Small refactoring to `\action\Dispatcher`, adding test coverage.
  - Enabled `\net\http\Media::type()` to return a type name when passed a content type. Adding XHTML content type to HTML detection. Adding `Media::decode()` to manually use media type decode handlers.
  - Small refactorings to `\action\Request`. Using `Media` to automatically decode non-urlencoded POST data and assign to `Request::$data`, if content-type is a registered type.
  - Merging "plugin" and "library" concepts; both are now handled uniformly as "libraries". Removing `app/libraries/plugins` directory, removing plugin loading / configuration code, and refactoring `\core\Libraries::add()`. Adding route auto-loading to filter in `app/config/bootstrap/action.php`.
  - Fixing bootstrap path auto-detection in `\core\Libraries::add()`. Updating tests for compatibility with plugin handling refactor. Dropping tests for removed functionality.
  - Fixing support for custom string templates in `\helper\Form::field()`, closes #31.
  - Refactoring `Dispatcher` so that a `Request` instance **must** be passed to `run()`. **WARNING: This change WILL break your application.** Please refer to `app/webroot/index.php` when updating.
  - Fixing issue in `\action\Request::_init()` where `$data` is not an array.
  - Refactoring `\action\Controller` to remove code which is now handled in `\core\Object`. Refactoring `Controller` so that the `Response` object is now instantiated in the `_init()` method.
  - Updating plugin-adding example to comply with new `Libraries` API.
  - Additional verifying tests for `\analysis\Inspector::type()`.
  - Cleaning up variable references and docblock content in `\action\Controller::__invoke()`. Fixing issue where `$_render['action']` gets overwritten.
  - Adding fix for routing where route elements with paired regular expressions don't reverse-generate URLs properly. Fixes #37.
  - Rough draft implementation of subquery and join handling in `data\source\Database`.
  - Implementing `model\Document::offsetGet()` to enable array access to `Document` objects.
  - Renaming `source\Database::columns()` to `source\Database::schema()`.
  - Adding integration tests to verify `ArrayAccess` interfaces for `Record`, `RecordSet` and `Document` objects.
  - Adding test files fixes for `lithium\data\model\RecordSet`.
  - Adding each() and map() to load remaining data before processing. Updated tests.
  - Renaming `source\Database::columns()` to `source\Database::schema()`.
  - Refactoring `\data\model\RecordSet` and `\data\model\Document` to use common base class `\data\Collection`, and moving to `\data\collection` namespace. Refactoring `Model` connection-interaction methods to use `_connection()`. Implementing `MongoDb::_toMongoId()` to properly wrap native Mongo IDs in a `MongoId` object instance.
  - Adding missing (moved) classes in `\data`, dropping rule from .gitignore.
  - Updating data branch to 0.6.
  - Dropping `\data\Connections::__init()`. Config file `config/connections.php` no longer loaded with class.
  - Updating test cases for moved classes.
  - Refactoring data layer to support CRUD operations against MySQL. Misc. refactorings to support Doctrine integration.
  - Fixing bad merge in `\template\helper\Form`.
  - Updating tests for `\data\collection\Document` API changes.
  - Updating method implementations and signatures for descendants of `\data\source\Database`.
  - Fixing `CouchDb` test to use `Document` instead of `Record`.
  - Refactoring `\data\Connections::add()` to require only two parameters. Adding `connections.php` to bootstrap.
  - Implementing `'count'` query type in `\data\Model`, misc. refactorings in MongoDB adapter, added support for count and group queries. Refactored `\data\model\Query` to support dynamic settings. Refactored `Query` setters to also return values. Added support methods for grouping and aggregation.
  - Fixing variable reference error in `MySql` adapter.
  - Fixing class reference in test case for `\util\Collection`.
  - Adding `\data\collection\Document::stats()` method for accessing ancillary statistics about query results.
  - Fixing class detection check in `\analysis\Inspector::type()`.
  - Removing MySQLi adapter.
  - Implementing minor filter-handling optimizations in `\data\Model`.
  - Correcting `$options` flag reference in `\template\helper\Form::create()`.
  - Enabling filtering for `\data\Model::create()`. Refactoring data layer so that data and data set objects always come from backend data sources.
  - Removing mock MySQLi adapter.
  - Rough draft implementation of subquery and join handling in `data\source\Database`.
  - Refactoring data layer to support CRUD operations against MySQL. Misc. refactorings to support Doctrine integration.
  - Implementing `'count'` query type in `\data\Model`, misc. refactorings in MongoDB adapter, added support for count and group queries. Refactored `\data\model\Query` to support dynamic settings. Refactored `Query` setters to also return values. Added support methods for grouping and aggregation.
  - Adding error-catching to `MongoDb::disconnect()`.
  - Fixing array key reference in `CouchDb::read()`.
  - Fixing method signature on `Model::create()`.
  - Fixing grouping queries in MongoDB.
  - Removing `extract()` call from `\data\Model::save()`.
  - Removing duplicate method definitions caused by bad merge.
  - Adding sanity checking to pseudo-method `\data\Model::first()`.
  - Refactoring `\data\source\Database` to return `RecordSet` objects from `read()`.
  - Fixing formatting and adding clarifying detail to documentation in `\util\Validator`.
  - Fixing default layout formatting and conventions.
  - Updating links and adding system checks to default application home page.
  - Adding, updating and fixing documentation in `\core\Object`.
  - Cleaning up docblocks in various classes.
  - Updating documentation for `\core\Object` and `\core\StaticObject`.
  - Adding notes about autoloading rules to `\core\Libraries`.
  - Modifying default configuration for `\data\source\Database` so that no default database is specified. Updating `MySql` adapter so that a connection is not attempted without a valid configuration.
  - Adding documentation on object handling with `\util\Collection`.
  - Adding documentation for `\util\Collection::formats()` and related entities.
  - Adding test coverage to format handling in `\util\Collection`, fixing issue when passing `false` to `formats()`.
  - Removing incomplete readme file.
  - Updating docblock in MongoDB adapter to reflect API changes.
  - Refactoring `\template\view\Compiler::template()` to simplify code branching. Adding heirarchy information to cache file names, automatically removing expired templates.

**gwoo (21):**

  - fixing plugin path replacement in \core\Libraries from optimizations
  - disabling the bootstrap/cache.php by default.
  - fix for _locatePath
  - fix for couchdb source when error is returned
  - updating app.phar.gz
  - fixing up some tests related to last merge.
  - updating bootstrapping and reverting some changes for now from [bda1e1811a9dc15f010ecbd1e8e9e113800d144d]
  - updating app template
  - removing unused reference to Collection in \data\Connections
  - changing CouchDb to use the database as defined in by the connection.     Set a type on each document equal to the 'source' as defined by the Model.
  - updating some classes for the Libraries changes.
  - couchdb passes \integration\SourceTest with latest updates to \data
  - updating joins support in \data\source\Database
  - setting MySqlTest to use a test connection
  - adding default REQUEST_METHOD to `\action\Request` fixes tests when run from command line.     Fix for routing in RendererTest when run from command line.
  - adding some more tests for `\data\source\Database` and `\data\source\database\adapter\MySql`.
  - throwing InvalidArgumentException if a Library is added but cannot be found.
  - adding more tests and refactoring `\template`. Most of the changes are in `\template\helper`
  - removing the used and abused \helper\Html::tag() method
  - CacheTest fix related to Encoder rename.
  - updating phar templates and adding some exception handlign to Library

**indiefan (1):**
  - Updated InflectorTest namespace to have proper casing.