services() ->defaults()->autowire() ->set(ParseFileHandler::class) ->tag('phpdoc.guides.command', ['command' => ParseFileCommand::class]) ->set(ParseDirectoryHandler::class) ->args([inline_service(FileCollector::class)->autowire()]) ->tag('phpdoc.guides.command', ['command' => ParseDirectoryCommand::class]) ->set(RenderHandler::class) ->tag('phpdoc.guides.command', ['command' => RenderCommand::class]) ->set(CompileDocumentsHandler::class) ->tag('phpdoc.guides.command', ['command' => CompileDocumentsCommand::class]) ->set(RenderDocumentHandler::class) ->tag('phpdoc.guides.command', ['command' => RenderDocumentCommand::class]) ->arg('$renderer', service('phpdoc.guides.output_node_renderer')) ->arg('$eventDispatcher', service(EventDispatcherInterface::class)) ->set(CommandBus::class) ->args([ [ inline_service(CommandHandlerMiddleware::class) ->args([ inline_service(ClassNameExtractor::class), inline_service(CommandLocator::class)->args( [tagged_locator('phpdoc.guides.command', 'command')], ), inline_service(HandleInflector::class), ]), inline_service(LockingMiddleware::class), ], ]); };