/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * @since 3.2.0 */ public function register(Container $container) { $container->alias(Config::class, 'Config') ->share('Config', [$this, 'getConfig'], true); $container->alias(Table::class, 'Table') ->share('Table', [$this, 'getTable'], true); $container->alias(Grep::class, 'Joomla.Power.Grep') ->share('Joomla.Power.Grep', [$this, 'getGrep'], true); $container->alias(Superpower::class, 'Joomlapower') ->share('Joomlapower', [$this, 'getSuperpower'], true); $container->alias(Parser::class, 'Power.Parser') ->share('Power.Parser', [$this, 'getParser'], true); } /** * Get The Config Class. * * @param Container $container The DI container. * * @return Config * @since 3.2.0 */ public function getConfig(Container $container): Config { return new Config(); } /** * Get The Table Class. * * @param Container $container The DI container. * * @return Table * @since 3.2.0 */ public function getTable(Container $container): Table { return new Table(); } /** * Get The Grep Class. * * @param Container $container The DI container. * * @return Grep * @since 3.2.0 */ public function getGrep(Container $container): Grep { return new Grep( $container->get('Config')->local_joomla_powers_repository_path, $container->get('Config')->approved_joomla_paths, $container->get('Gitea.Repository.Contents') ); } /** * Get The Super Class. * * @param Container $container The DI container. * * @return Superpower * @since 3.2.0 */ public function getSuperpower(Container $container): Superpower { return new Superpower( $container->get('Joomla.Power.Grep'), $container->get('Joomla.Power.Database.Insert'), $container->get('Joomla.Power.Database.Update') ); } /** * Get The Parser Class. * * @param Container $container The DI container. * * @return Parser * @since 3.2.0 */ public function getParser(Container $container): Parser { return new Parser(); }