<?php

declare(strict_types=1);

namespace Acms\Services\Facades;

/**
 * Class Url
 *
 * URL の絶対化・ルート相対化を担う {@see \Acms\Services\Url\UrlResolver} へのアクセスポイント。
 *
 * 管理ドメインの判定は 'url.managed-domain'、メディア配信先の書き換えは 'url.delivery-rewriter' が
 * 別サービスとして分かれている（呼び出し頻度が低いためファサードは設けず App::make() で取得する）。
 *
 * @method static string toAbsoluteUrl(string $path, string $offset = '', ?string $baseUrl = null) 完全な absolute URL（scheme + host + path）に変換する
 * @method static string toRootRelativeUrl(string $path, string $offset = '', ?string $baseUrl = null) root-relative URL（/path 形式）に変換する
 * @method static string resolveUrl(string $path, string $offset = '') V2モジュール／APIビルド時のみ絶対URL化する
 * @method static string convertRelativeUrlToAbsolute(string $url, string $baseUrl) 単一の相対URLを絶対URLに変換する
 * @method static string convertAssetUrlsToAbsolute(string $html, string $baseUrl) HTML内のアセット参照を絶対URLに変換する
 */
class Url extends Facade
{
    protected static $instance;

    /**
     * @return string
     */
    protected static function getServiceAlias()
    {
        return 'url';
    }

    /**
     * @return bool
     */
    protected static function isCache()
    {
        return true;
    }
}
