joomla/joomla-cms — pull request #3374 by mbabker (2014-03-26 23:45:16+00:00)
Title: Replace the Platform version of the Registry package with the Framework's

### Summary
This pull request merges back work from the Framework into the CMS, beginning integration of Framework code into the CMS application in a backwards compatible manner and introducing features added during the Framework's development period.

For this pull request, the Platform's Registry package (`JRegistry**`) is replaced with the Framework equivalent (`\Joomla\Registry` namespace).

### Backward Compatibility
To preserve backward compatibility, class alias mapping is introduced which maps the old Platform class name to that of the Framework (so `JRegistryFormat` is mapped to `\Joomla\Registry\AbstractRegistryFormat`).

### New Features
While developing the Framework, the Registry package has been expanded upon to allow greater developer flexibility. First, the Framework's `Registry` class now implements the `ArrayAccess` interface, allowing `Registry` objects to be accessed as an array (`$registry['item']['foo'] = bar;` is the same as `$registry->set('item.foo', 'bar');` in this context). Secondly, a new format class was introduced which allows the `Registry` package to output data in YAML format using a library from Symfony. The new format class is introduced (without a class alias, it isn't necessary as a new class in this instance) but its dependencies from Symfony are not bundled here.

### Testing
In addition to verification of the unit tests passing, testers should apply this patch and utilize the CMS as normal. Install your favorite extensions and perform your favorite functions. Developers should check their uses of the former `JRegistry` to ensure that everything continues to behave as expected, the existing API continues to work, and the newer API is accessible (mainly the array access).