我想添加 Sandbox 擴(kuò)展來使用 Timber for WordPress 評估不受信任的代碼(包括使用 Composer,但使用該插件時(shí)得到相同的結(jié)果)。以下(簡化的)代碼會導(dǎo)致致命錯誤。add_filter('timber/twig', function($twig){ $filters = array_diff(array_keys($twig->getFilters()), ['function']); $policy = new \Twig\Sandbox\SecurityPolicy([], $filters, [], [], []); $twig->addExtension(new \Twig\Extension\SandboxExtension($policy, true)); return $twig;});錯誤是:“致命錯誤:未捕獲異常:無法注冊擴(kuò)展“沙箱”,因?yàn)閿U(kuò)展已初始化?!比绻麘?yīng)用的過濾器是 wood/twig 或 twig_apply_filters,則沒有區(qū)別。這是添加此擴(kuò)展的不正確位置嗎?它似乎只在調(diào)用 Timber::compile_string 時(shí)執(zhí)行。我在 PHP 7.3.x 上使用最新版本的 WordPress 和 Timber
1 回答

慕俠2389804
TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個贊
$twig->getFilters()
導(dǎo)致擴(kuò)展被初始化,因此不能在這里用于此目的。刪除此代碼后,不會出現(xiàn)錯誤,并且沙箱擴(kuò)展已注冊。
- 1 回答
- 0 關(guān)注
- 117 瀏覽
添加回答
舉報(bào)
0/150
提交
取消