Upgraded cake from 3.3 to 3.6 getting below warning

Deprecated: PHP configuration files should not set `$config. Instead return an array.

The error message tells you exactly what to do. Have you followed the 3.3 to 3.4, 3.4 to 3.5 and 3.5 to 3.6 migration guides?

Another easy way to upgrade is to update app. I make two temp folders, one old, other new. I have a program called WinMerge. It

  • compares two folders and shows file difference
  • Shows files in one folder not in other

So I get app all updated, then run composer update.

Next comment out this:

//if (Configure::read('debug')) {
    //Plugin::load('DebugKit', ['bootstrap' => true]);
//at bottom of bootstrap.php

Run app, look at warnings and Deprecated items, and fix.

As example, request, the docs shows:

$controllerName = $this->request->getParam('controller');

// Prior to 3.4.0
$controllerName = $this->request->param('controller');

Notice the // Prior to 3.4.0

So the docs clearly shows what the new version needs.

It may take a little while to change the code to newer version, but where else do you need to be.
And a good ide will search and replace various places at one time. I actually went from 3.5 to 3.6 in about an hour, good medium application. A lot of places like


had the word


Tacked on now.

To me it was just easier to upgrade that way.

Do not just get app from


go here


And only use a latest stable release

Use the composer.json file from the stable release only when later running composer update.

Stay away from anything in Dev.

Bottom line you have to get used of proper updating, come up with a technique that works well. The git way is fine for vendor, but for app you have current code. So you only want to update changed lines only in some of those files.