zendframework/zf2 — pull request #1711 by Ocramius (2012-07-03 00:02:00+00:00)
Title: [WIP] - Feature/lazy Zend\Di abstract factory

This PR introduces a new Di lazy abstract factory, which can be implemented thanks to the changes in zendframework/zf2#1698 and zendframework/zf2#1709.

The travis build will most probably fail because of the maximum nesting level of 100 reached, but once zendframework/zf2#1709 is merged this PR can be rebased on it.

Each service that couldn't be instantiated by the `ServiceManager` will now go through this abstract factory instead of the previous weird behaviour that required the user to manually call `$sm->get('Di');` to have a `DiAbstractFactory` configured and attached to `ServiceManager` itself.

Performance will still be OK until the end user doesn't request a service that requires Di.
Also, the `Di` based initializers in `ControllerLoaderFactory` ( see https://github.com/zendframework/zf2/blob/master/library/Zend/Mvc/Service/ControllerLoaderFactory.php#L61 ) shouldn't be needed anymore.

[![Build Status](https://secure.travis-ci.org/Ocramius/zf2.png?branch=feature/lazy-abstract-di-factory)](http://travis-ci.org/Ocramius/zf2)