<?php

namespace Acms\Plugins\SamplePlugin;

class Hook
{
    /**
     * 例: グローバル変数の拡張
     *
     * @param \Field &$globalVars
     * @return void
     */
    public function extendsGlobalVars(\Field &$globalVars): void
    {
//         $globalVars->set('key', 'value');
    }

    /**
     * キャッシュルールに特殊ルールを追加
     *
     * @param string $customRuleString
     * @return void
     */
    public function addCacheRule(string &$customRuleString): void
    {
//        $customRuleString = UA_GROUP; // デバイスによってルールを分ける場合
    }

    /**
     * Twig Environment 構築時に呼ばれる拡張ポイント。
     * Twig Filter / Function / Extension の登録はここで行う。
     *
     * @param \Acms\Services\Template\Twig $twig
     * @return void
     */
    public function extendsTwig(\Acms\Services\Template\Twig $twig): void
    {
        // 例: ドメイン固有 Filter / Function / Extension を登録する場合はここに書く。
        // $twig->registerFilter('jp_date', fn(string $iso) => date('Y年n月j日', strtotime($iso)));
        // $twig->registerFunction('sample_status_label', [SampleService::class, 'statusLabel']);
        // $twig->registerExtension(new SampleTwigExtension());
    }
}
