The CakePHP core team is excited to announce the release of CakePHP 
3.0.0-RC2. Our plan is that this will be the final 3.0.0 release candidate 
and in ~6 weeks time 3.0.0 stable will be released. Since 3.0.0-RC1, we've 
been hard at work incorporating community feedback, fixing many issues and 
improving the documentation.

# Upgrading From an Earlier 3.0.0 release

When upgrading from an earlier 3.0.0 release there are a few important 
changes you'll need to make.

## Plugin Installation

The use and role of the CakePHP Plugin installer has changed and requires 
the following updates to your app's composer.json file:

```
"require": {
    "cakephp/plugin-installer": "*",
    "cakephp/bake": "dev-master"
},
"scripts": {
    "post-autoload-dump": 
"Cake\\Composer\\Installer\\PluginInstaller::postAutoloadDump"
}
```

These additions will ensure that your plugins continue to install 
correctly. Plugins installed with composer will now be installed under 
`/vendor`. This change was done to make the separation between external and 
in-app plugins clearer. Having both in the same directory was confusing for 
a number of users.

## String renamed to Text

In preparation for PHP7 and HHVM, the String class was renamed to 
`Cake\Utility\Text`. The old class name continues to work but will be 
removed in a future 3.x release.

## Configuration File Changes

Configuration files loaded through `Configure::load()` previously required 
the extension. The extension being present made switching configuration 
file formats hard. For RC2, you must remove the extensions. So 
`Configure::read('app.php')` is now `Configure::read('app')`.
PHP based configuration files should now return their data instead of 
setting the `$config` variable. The `$config` variable is now deprecated 
and will be removed in a future 3.x release.

## ORM Callback Consistency

The various ORM callbacks had somewhat inconsistent types used for the 
`$options` parameter. All callbacks will now receive an `ArrayObject` for 
the `$options` parameter. Query::formatResults() no longer gets the query 
as an argument either. If you need access to the query from a result 
formatter, use a closure.

## EventManager::detach() and EventManager::attach() are deprecated

These methods have been replaced with `on()` and `off()`. These new methods 
use an interface much like jQuery's methods. `attach()` and `detach()` are 
now deprecated and will be removed in a future 3.x release.
We'd like to welcome Jad Bitar (jadb), Walther Lalk (dakota) and Anthony 
Grassiot (antograssiot) to the core team. Each of them has helped make 
3.0.0 what it is today.

For more details on all the changes in 3.0.0, you should consult the 
[migration 
guide](http://book.cakephp.org/3.0/en/appendices/3-0-migration-guide.html). 
In closing, we'd like to thank all of the people that have helped so far 
with the 3.0 release.
Download a [packaged 
release](https://github.com/cakephp/cakephp/releases/3.0.0-RC2).

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to