$doctrineParser->registerAnnotation('KJSencha\\Annotation\\Interval'); $doctrineParser->registerAnnotation('KJSencha\\Annotation\\Formhandler'); $doctrineParser->registerAnnotation('KJSencha\\Annotation\\Group'); $annotationManager = new AnnotationManager(); $annotationManager->attach($doctrineParser); return $annotationManager; }, 'kjsencha.apibuilder' => function (ServiceLocatorInterface $sl) { /* @var $annotationManager AnnotationManager */ $annotationManager = $sl->get('kjsencha.annotationmanager'); /* @var $directManager DirectManager */ $directManager = $sl->get('kjsencha.direct.manager'); return new ApiBuilder($annotationManager, $directManager); }, 'kjsencha.cache' => function (ServiceLocatorInterface $sl) { $config = $sl->get('Config'); $storage = StorageFactory::factory($config['kjsencha']['cache']); return $storage; }, 'kjsencha.bootstrap' => function (ServiceLocatorInterface $sl) { $config = $sl->get('Config'); $bootstrap = new Bootstrap($config['kjsencha']['bootstrap']['default']); $bootstrap->addVariables(array('App' => array('basePath' => $sl->get('Request')->getBasePath()))); /* @var $directApi \KJSencha\Direct\Remoting\Api\Api */ $directApi = $sl->get('kjsencha.api'); $bootstrap->setDirectApi($directApi); return $bootstrap; }, 'kjsencha.direct.manager' => function (ServiceManager $sm) { $directManager = new DirectManager(); $directManager->addPeeringServiceManager($sm); return $directManager; }, 'kjsencha.echo' => function () { return new TestEchoService('Hello '); }));