share(function (Application $app) { return new ImportStrategy(); }); $app['plugins.autoloader-generator'] = $app->share(function (Application $app) { return new AutoloaderGenerator($app['plugin.path']); }); $app['plugins.assets-manager'] = $app->share(function (Application $app) { return new AssetsManager($app['filesystem'], $app['plugin.path'], $app['root.path']); }); $app['plugins.composer-installer'] = $app->share(function (Application $app) { $phpBinary = $app['conf']->get(['main', 'binaries', 'php_binary'], null); if (!is_executable($phpBinary)) { $finder = new PhpExecutableFinder(); $phpBinary = $finder->find(); } return new ComposerInstaller($app['composer-setup'], $app['plugin.path'], $phpBinary); }); $app['plugins.explorer'] = $app->share(function (Application $app) { return new PluginsExplorer($app['plugin.path']); }); $app['plugins.importer'] = $app->share(function (Application $app) { return new Importer($app['plugins.import-strategy'], [ 'plugins.importer.folder-importer' => $app['plugins.importer.folder-importer'], ]); }); $app['plugins.importer.folder-importer'] = $app->share(function (Application $app) { return new FolderImporter($app['filesystem']); }); } public function boot(Application $app) { } }