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