share(function (Application $app) { return new JsonValidator(); }); $app['plugins.manifest-validator'] = $app->share(function (Application $app) { return ManifestValidator::create($app); }); $app['plugins.plugins-validator'] = $app->share(function (Application $app) { return new PluginValidator($app['plugins.manifest-validator']); }); $app['plugins.manager'] = $app->share(function (Application $app) { return new PluginManager($app['plugins.directory'], $app['plugins.plugins-validator'], $app['conf']); }); } public function boot(Application $app) { $app['twig'] = $app->share( $app->extend('twig', function ($twig, Application $app) { $function = new \Twig_SimpleFunction('plugin_asset', ['Alchemy\Phrasea\Plugin\Management\AssetsManager', 'twigPluginAsset']); $twig->addFunction($function); return $twig; }) ); } }