cakephp/cakephp — pull request #860 by markstory (2012-09-20 01:48:01+00:00)
Title: Update bootstrapping and configuration in 3.0

Following the discussion on [cakephp-core](https://groups.google.com/forum/?fromgroups=#!topic/cakephp-core/Mu3qOCG6FMY) I've implemented most of the changes discussed but I'll reiterate some of the most important changes again.

* Cache, Log, and Email now all use Configure for configuration data. The various config() methods now emit errors, and the EmailConfig class has been removed.
* I have not updated ConnectionManager, but there is a connections.php with a possible approach. I figure ConnectionManager will be updated as the model layer is re-worked.
* Support for PHP's `include_path` has been temporarily removed, but will come back when I start work on integrating composer.
* The bootstrapping of a CakePHP application has in my opinion been greatly simplified and most voodoo has been removed. Declaration of all path related constants has been moved to App/Config as it simplifies overriding those constants.
* Console bootstrapping is now the same as web request bootstrapping which is a nice bonus.

### Changes to Log and Cache

Both `Cache` and `Log` now feature an `engine()` method. This method can be used to directly inject dependencies and fetch instances. It also allows `Cache` to lazily load all engines, which could help performance. Similarly, `Log` lazy loads loggers upon the first call to `write()`.