protect(function ($databoxId) use ($app) { return function (array $data) use ($app, $databoxId) { $recordReference = RecordReference::createFromDataboxIdAndRecordId($databoxId, $data['record_id']); return new \caption_record($app, $recordReference, $data); }; }); $app['provider.repo.caption'] = $app->share(function (Application $app) { $connectionProvider = new DataboxConnectionProvider($app['phraseanet.appbox']); $factoryProvider = $app['provider.factory.caption']; $repositoryFactory = new CaptionRepositoryFactory($connectionProvider, $app['cache'], $factoryProvider); return new DataboxBoundRepositoryProvider($repositoryFactory); }); $app['service.caption'] = $app->share(function (Application $app) { return new CaptionService($app['provider.repo.caption']); }); } public function boot(Application $app) { // no-op } }