<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
namespace Zend\Mvc\Service;
use Zend\Di\Config;
use Zend\Di\Di;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
class DiFactory implements FactoryInterface
{
/**
* Create and return abstract factory seeded by dependency injector
*
* Creates and returns an abstract factory seeded by the dependency
* injector. If the "di" key of the configuration service is set, that
* sub-array is passed to a DiConfig object and used to configure
* the DI instance. The DI instance is then used to seed the
* DiAbstractServiceFactory, which is then registered with the service
* manager.
*
* @param ServiceLocatorInterface $serviceLocator
* @return Di
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
$di = new Di();
$config = $serviceLocator->get('Config');
if (isset($config['di'])) {
$config = new Config($config['di']);
$config->configure($di);
}
return $di;
}
}