1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69:
<?php
namespace NetBazzlineZfCliGenerator\Controller\Console;
use Net\Bazzline\Component\ProcessPipe\PipeInterface;
use Zend\ServiceManager\Exception\InvalidArgumentException;
use Zend\ServiceManager\ServiceLocatorInterface;
use ZfConsoleHelper\Controller\Console\AbstractConsoleControllerFactory;
class IndexControllerFactory extends AbstractConsoleControllerFactory
{
public function createService(ServiceLocatorInterface $serviceLocator)
{
$controller = new IndexController();
$serviceLocator = $this->transformIntoServiceManager($serviceLocator);
$configuration = $serviceLocator->get('Config');
$key = 'net_bazzline_zf_cli_generator';
if (!isset($configuration[$key])) {
throw new InvalidArgumentException (
'expected configuration key "' . $key . '" not found'
);
}
$cliGenerator = $serviceLocator->get('NetBazzlineCliGeneratorGenerateCliContent');
$configurationGenerator = $serviceLocator->get('NetBazzlineCliGeneratorGenerateConfigurationContent');
$configuration = $configuration[$key];
$pathToApplication = $configuration['application']['path'] .
DIRECTORY_SEPARATOR .
$configuration['application']['name'];
$pathToAutoload = $configuration['autoload']['path'] .
DIRECTORY_SEPARATOR .
$configuration['autoload']['name'];
$pathToConfiguration = $configuration['configuration']['target']['path'] .
DIRECTORY_SEPARATOR .
$configuration['configuration']['target']['name'];
$pathToCli = $configuration['cli']['target']['path'] .
DIRECTORY_SEPARATOR .
$configuration['cli']['target']['name'];
$prefix = $configuration['cli']['prefix'];
$controller->injectGenerateConfigurationProcessPipe($configurationGenerator);
$controller->injectGenerateCliProcessPipe($cliGenerator);
$controller->injectPathToApplication($pathToApplication);
$controller->injectPathToAutoload($pathToAutoload);
$controller->injectPathToConfiguration($pathToConfiguration);
$controller->injectPathToCli($pathToCli);
$controller->injectPrefix($prefix);
return $controller;
}
}