return $storage; }); $container->register('Persistence\\Gateway\\Schema\\MySQL', function (StorageInterface $storage) use($container) { /** @var DataMapperInterface $dataMapper */ $dataMapper = $container->resolve('Persistence\\DataMapper\\Schema'); $gateway = new MySQLGateway($storage, $dataMapper); return $gateway; }); $container->register('Persistence\\DataMapper\\Schema', function () { $dataMapper = new SchemaDataMapper(); return $dataMapper; }); $container->register('Domain\\Mapper\\Schema', function () { $dataMapper = new SchemaMapper(); return $dataMapper; }); $container->register('Infrastructure\\Services\\Schema', function (GatewayInterface $gateway, MapperInterface $mapper) { $repository = new SchemaRepository($gateway, $mapper); $service = new SchemaService($repository); return $service; }); $app = new \Symfony\Component\Console\Application('MySQL Database Inspector', '1.0.0'); // reset $app->setDefinition(new \Symfony\Component\Console\Input\InputDefinition([new InputArgument('command', InputArgument::REQUIRED, 'The command to execute')])); // commands $app->addCommands([new \DatabaseInspect\Console\Command\DetailsCommand($container)]); try { $app->run(); } catch (\Exception $e) { echo 'ERROR: ' . $e->getMessage() . PHP_EOL . 'File: ' . $e->getFile() . ' (' . $e->getLine() . ')' . PHP_EOL; }