/** * @param CoreInterface $core */ protected function register(CoreInterface $core) { $loop = $core->make('Surume\\Loop\\LoopInterface'); $context = $core->make('Surume\\Core\\CoreInputContextInterface'); $modelFactory = new ChannelModelFactory($context->alias(), $loop); $factory = new ChannelFactory($context->alias(), $modelFactory, $loop); $core->instance('Surume\\Channel\\ChannelModelFactoryInterface', $modelFactory); $core->factory('Surume\\Channel\\ChannelModelInterface', function () use($modelFactory) { return $modelFactory->create('Surume\\Channel\\Model\\Null\\NullModel'); }); $core->instance('Surume\\Channel\\ChannelFactoryInterface', $factory); $core->factory('Surume\\Channel\\ChannelBaseInterface', [$factory, 'create']); $core->factory('Surume\\Channel\\ChannelCompositeInterface', [$factory, 'create']); }
/** * @param CoreInterface $core */ protected function register(CoreInterface $core) { $runtime = $core->make('Surume\\Runtime\\RuntimeInterface'); $factory = new SolverFactory($runtime); $config = []; $core->instance('Surume\\Supervisor\\SolverFactoryInterface', $factory); $core->factory('Surume\\Supervisor\\SupervisorInterface', function (SolverFactoryInterface $passedFactory = null, $passedConfig = [], $passedRules = []) use($factory, $config) { return new Supervisor($passedFactory !== null ? $passedFactory : $factory, array_merge($config, $passedConfig), $passedRules); }); }