{"action":"published","release":{"url":"https://api.github.com/repos/cakephp/cakephp/releases/2365531","assets_url":"https://api.github.com/repos/cakephp/cakephp/releases/2365531/assets","upload_url":"https://uploads.github.com/repos/cakephp/cakephp/releases/2365531/assets{?name,label}","html_url":"https://github.com/cakephp/cakephp/releases/tag/3.2.0-RC1","id":2365531,"tag_name":"3.2.0-RC1","target_commitish":"master","name":"CakePHP 3.2.0-RC1 released","draft":false,"author":{"login":"lorenzo","id":37621,"avatar_url":"https://avatars.githubusercontent.com/u/37621?v=3","gravatar_id":"","url":"https://api.github.com/users/lorenzo","html_url":"https://github.com/lorenzo","followers_url":"https://api.github.com/users/lorenzo/followers","following_url":"https://api.github.com/users/lorenzo/following{/other_user}","gists_url":"https://api.github.com/users/lorenzo/gists{/gist_id}","starred_url":"https://api.github.com/users/lorenzo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lorenzo/subscriptions","organizations_url":"https://api.github.com/users/lorenzo/orgs","repos_url":"https://api.github.com/users/lorenzo/repos","events_url":"https://api.github.com/users/lorenzo/events{/privacy}","received_events_url":"https://api.github.com/users/lorenzo/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2016-01-03T18:13:01Z","published_at":"2016-01-03T19:22:53Z","assets":[{"url":"https://api.github.com/repos/cakephp/cakephp/releases/assets/1172956","id":1172956,"name":"cakephp-3-2-0-RC1.zip","label":"","uploader":{"login":"lorenzo","id":37621,"avatar_url":"https://avatars.githubusercontent.com/u/37621?v=3","gravatar_id":"","url":"https://api.github.com/users/lorenzo","html_url":"https://github.com/lorenzo","followers_url":"https://api.github.com/users/lorenzo/followers","following_url":"https://api.github.com/users/lorenzo/following{/other_user}","gists_url":"https://api.github.com/users/lorenzo/gists{/gist_id}","starred_url":"https://api.github.com/users/lorenzo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lorenzo/subscriptions","organizations_url":"https://api.github.com/users/lorenzo/orgs","repos_url":"https://api.github.com/users/lorenzo/repos","events_url":"https://api.github.com/users/lorenzo/events{/privacy}","received_events_url":"https://api.github.com/users/lorenzo/received_events","type":"User","site_admin":false},"content_type":"application/zip","state":"uploaded","size":4184397,"download_count":1,"created_at":"2016-01-03T18:13:50Z","updated_at":"2016-01-03T18:13:55Z","browser_download_url":"https://github.com/cakephp/cakephp/releases/download/3.2.0-RC1/cakephp-3-2-0-RC1.zip"}],"tarball_url":"https://api.github.com/repos/cakephp/cakephp/tarball/3.2.0-RC1","zipball_url":"https://api.github.com/repos/cakephp/cakephp/zipball/3.2.0-RC1","body":"The CakePHP core team is happy to announce the immediate availability of CakePHP\r\n3.2.0-RC1. This release is the first release candidate for the 3.2 branch which\r\nadds several new features to the 3.x series. We would appreciate any feedback\r\nyou might have on the new features before their API definitions become stable.\r\n\r\nMinimum PHP 5.5 Required\r\n------------------------\r\n\r\nCakePHP 3.2 requires at least PHP 5.5.10. By adopting PHP 5.5 we can provide better\r\nDate and Time libraries and remove dependencies on password compatibility\r\nlibraries.\r\n\r\nDisabling Deprecation Warnings\r\n------------------------------\r\n\r\nUpon upgrading you may encounter several deprecation warnings. These warnings\r\nare emitted by methods, options and functionality that will be removed in\r\nCakePHP 4.x, but will continue to exist throughout the lifetime of 3.x. While we\r\nrecommend addressing deprecation issues as they are encountered, that is not\r\nalways possible. If you'd like to defer fixing deprecation notices, you can\r\ndisable them in your **config/app.php**::\r\n\r\n    'Error' => [\r\n        'errorLevel' => E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED,\r\n    ]\r\n\r\nThe above error level will suppress deprecation warnings from CakePHP.\r\n\r\nCarbon Replaced with Chronos\r\n----------------------------\r\n\r\nThe Carbon library has been replaced with [cakephp/chronos](https://github.com/cakephp/chronos). This\r\nnew library is a fork of Carbon with no additional dependencies. It also offer\r\na calendar date object, and immutable versions of both date and datetime\r\nobjects.\r\n\r\nNew Date Object\r\n---------------\r\n\r\nThe ``Date`` class allows you to cleanly map ``DATE`` columns into PHP objects.\r\nDate instances will always fix their time to ``00:00:00 UTC``. By default the\r\nORM creates instances of ``Date`` when mapping ``DATE`` columns now.\r\n\r\nNew Immutable Date and Time Objects\r\n-----------------------------------\r\n\r\nThe ``FrozenTime``, and ``FrozenDate`` classes were added. These classes offer\r\nthe same API as the ``Time`` object has. The frozen classes provide immutable\r\nvariants of ``Time`` and ``Date``.  By using immutable objects, you can prevent\r\naccidental mutations. Instead of in-place modifications, modifier methods return\r\n*new* instances::\r\n\r\n    use Cake\\I18n\\FrozenTime;\r\n\r\n    $time = new FrozenTime('2016-01-01 12:23:32');\r\n    $newTime = $time->modify('+1 day');\r\n\r\nIn the above code ``$time`` and ``$newTime`` are different objects. The\r\n``$time`` object retains its original value, while ``$newTime`` has the modified\r\nvalue. As of 3.2, the ORM can map date/datetime columns into immutable objects\r\nas well.\r\n\r\nCorsBuilder Added\r\n-----------------\r\n\r\nIn order to make setting headers related to Cross Origin Requests (CORS) easier,\r\na new ``CorsBuilder`` has been added. This class lets you define CORS related\r\nheaders with a fluent interface.\r\n\r\nORM Improvements\r\n----------------\r\n\r\n* Containing the same association multiple times now works as expected, and the\r\n  query builder functions are now stacked.\r\n* Function expressions now correctly cast their results. This means that\r\n  expressions like ``$query->func()->current_date()`` will return datetime\r\n  instances.\r\n\r\nImproved Validator API\r\n----------------------\r\n\r\nThe Validator object has a number of new methods that make building validators\r\nless verbose. For example adding validation rules to a username field can now\r\nlook like::\r\n\r\n    $validator->email('username')\r\n        ->ascii('username')\r\n        ->lengthBetween('username', [4, 8]);\r\n\r\nConsole Improvements\r\n--------------------\r\n\r\n* ``Shell::info()``, ``Shell::warn()`` and ``Shell::success()`` were added.\r\n  These helper methods make using commonly used styling simpler.\r\n* ``Cake\\\\Console\\\\Exception\\\\StopException`` was added.\r\n* ``Shell::abort()`` was added to replace ``error()``.\r\n\r\n\r\nStopException Added\r\n-------------------\r\n\r\n``Shell::_stop()`` and ``Shell::error()`` no longer call ``exit()``. Instead\r\nthey raise ``Cake\\\\Console\\\\Exception\\\\StopException``. If your shells/tasks are\r\ncatching ``\\Exception`` where these methods would have been called, those catch\r\nblocks will need to be updated so they don't catch the ``StopException``. By not\r\ncalling ``exit()`` testing shells should be easier and require fewer mocks.\r\n\r\n\r\nHelpers initialize()\r\n--------------------\r\n\r\nHelpers can now implement an ``initialize(array $config)`` hook method like other\r\nclass types.\r\n\r\nFormHelper\r\n----------\r\n\r\nThe ``action`` key for ``FormHelper::create()`` has been deprecated. You should use\r\nthe ``url`` key directly.\r\n\r\nFatal Error Memory Limit Handling\r\n=================================\r\n\r\nA new configuration option ``Error.extraFatalErrorMemory`` can be set to the\r\nnumber of megabytes to increase the memory limit by when a fatal error is\r\nencountered. This allows breathing room to complete logging or error handling.\r\n\r\nDeprecations\r\n------------\r\n\r\nAs we continue to improve CakePHP, certain features are deprecated as they are\r\nreplaced with better solutions. Deprecated features will not be removed until\r\n4.0:\r\n\r\n* ``Shell::error()`` is deprecated because its name does not clearly indicate\r\n  that it both outputs a message and stops execution. Use ``Shell::abort()``\r\n  instead.\r\n* ``Cake\\\\Database\\\\Expression\\QueryExpression::type()`` is deprecated. Use ``tieWith()`` instead.\r\n* ``Cake\\\\Database\\\\Type\\\\DateTimeType::$dateTimeClass`` is deprecated.  Use\r\n  DateTimeType::useMutable() or DateTimeType::useImmutable() instead.\r\n* ``Cake\\\\Database\\\\Type\\\\DateType::$dateTimeClass`` is deprecated.  Use\r\n  ``DateTimeType::useMutable()`` or ``DateType::useImmutable()`` instead.\r\n* ``Cake\\\\ORM\\\\ResultSet::_calculateTypeMap()`` is now unused and deprecated.\r\n* ``Cake\\\\ORM\\\\ResultSet::_castValues()`` is now unused and deprecated.\r\n\r\nUnless there are major issues with the 3.2.0-RC1 release, we will have a stable\r\nrelease packaged in the next 4-5 weeks. The documentation for 3.2.0 is now\r\navailable in the [book](http://book.cakephp.org/3.0/en) and the [API](http://api.cakephp.org/3.2).\r\n\r\nAs always, a huge thanks to all the community members that helped make this\r\nrelease happen by reporting issues and sending pull requests.\r\n"}}