Back to Authentication class

Method register

public void
register
(\Joomla\DI\Container $container)
Registers the service provider with a DI container.
Parameters
  • \Joomla\DI\Container $container The DI container.
Returns
  • void
Since
  • 4.0.0

Method register - Source code

/**
 * Registers the service provider with a DI container.
 *
 * @param   Container  $container  The DI container.
 *
 * @return  void
 *
 * @since   4.0.0
 */
public function register(Container $container)
{
    $container->alias('password.handler.argon2i', Argon2iHandler::class)->alias(BaseArgon2iHandler::class, Argon2iHandler::class)->share(Argon2iHandler::class, function (Container $container) {
        return new Argon2iHandler();
    }, true);
    $container->alias('password.handler.argon2id', Argon2idHandler::class)->alias(BaseArgon2idHandler::class, Argon2idHandler::class)->share(Argon2idHandler::class, function (Container $container) {
        return new Argon2idHandler();
    }, true);
    $container->alias('password.handler.chained', ChainedHandler::class)->share(ChainedHandler::class, function (Container $container) {
        $handler = new ChainedHandler();
        // Load the chain with supported core handlers
        $handler->addHandler($container->get(BCryptHandler::class));
        if (Argon2iHandler::isSupported()) {
            $handler->addHandler($container->get(Argon2iHandler::class));
        }
        if (Argon2idHandler::isSupported()) {
            $handler->addHandler($container->get(Argon2idHandler::class));
        }
        $handler->addHandler($container->get(PHPassHandler::class));
        $handler->addHandler($container->get(MD5Handler::class));
        return $handler;
    }, true);
    // The Joomla default is BCrypt so alias this service
    $container->alias('password.handler.default', BCryptHandler::class)->alias(BaseBCryptHandler::class, BCryptHandler::class)->alias('password.handler.bcrypt', BCryptHandler::class)->share(BCryptHandler::class, function (Container $container) {
        return new BCryptHandler();
    }, true);
    $container->alias('password.handler.md5', MD5Handler::class)->share(MD5Handler::class, function (Container $container) {
        @trigger_error(sprintf('The "%1$s" class service is deprecated, use the "%2$s" service for the active password handler instead.', MD5Handler::class, 'password.handler.default'), E_USER_DEPRECATED);
        return new MD5Handler();
    }, true);
    $container->alias('password.handler.phpass', PHPassHandler::class)->share(PHPassHandler::class, function (Container $container) {
        @trigger_error(sprintf('The "%1$s" class service is deprecated, use the "%2$s" service for the active password handler instead.', PHPassHandler::class, 'password.handler.default'), E_USER_DEPRECATED);
        return new PHPassHandler();
    }, true);
}