<?php

namespace Acms\Services\Facades;

/**
 * @method static void load(string $path, string $theme) twigテンプレートをロード
 * @method static void addExtension(\Twig\Extension\AbstractExtension $extension) 拡張機能を追加 (既存 API)
 * @method static void addFunction(string $name, callable $function) 関数を追加 (既存 API)
 * @method static string render() テンプレートをレンダリング
 * @method static void addTemplatePath(string $dir, ?string $namespace = null) 拡張側のテンプレートディレクトリを名前空間付きで登録
 * @method static void registerExtension(\Twig\Extension\AbstractExtension $extension) 拡張側の Twig Extension を登録 (Environment 構築時に attach)
 * @method static void registerFilter(string $name, callable $callable, array $options = []) 拡張側の Filter を登録
 * @method static void registerFunction(string $name, callable $callable, array $options = []) 拡張側の Function を登録
 * @method static string renderTemplate(string $name, array $context = []) 名前指定でテンプレートをレンダリング
 * @method static void clearCache() Twig コンパイル済みキャッシュをクリア
 */
class Twig extends Facade
{
    protected static $instance;

    /**
     * @return string
     */
    protected static function getServiceAlias()
    {
        return 'template.twig';
    }

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