protected function _getUrlChecker()
    {
        $options = $this->getConfig('urlChecker');
        if (!is_array($options)) {
            $options = [
                'className' => $options
            ];
        }
        if (!isset($options['className'])) {
            $options['className'] = DefaultUrlChecker::class;
        }

        $className = App::className($options['className'], 'UrlChecker', 'UrlChecker');
        if ($className === false) {
            throw new RuntimeException(sprintf('URL checker class `%s` was not found.', $options['className']));
        }

        $checker = new $className();

        if (!($checker instanceof UrlCheckerInterface)) {
            throw new RuntimeException(sprintf(
                'The provided URL checker class `%s` does not implement the `%s` interface.',
                $options['className'],
                UrlCheckerInterface::class
            ));
        }

        return $checker;
    }