我要做的是使用存储或插件来存储变量。Stashes 就像插件一样,但它们除了存储数据之外什么都不做,它们可以放入您的全局配置以及您的dist.ini
.
[%Vars]
favorite_pie = pumpkin
然后你可以这样处理它们:
$zilla->stash_named('%Vars')->favorite_pie
这假设您已经创建了 Dist::Zilla::Stash::Vars 并为其赋予了 favorite_pie 属性。
不过,您可以制作一个完全通用的存储,它接受任何东西作为密钥。为此,我将查看 Dist::Zilla::Plugin::Prereqs 的来源,它允许任意配置选项并将它们推入其BUILDSARGS
方法中的哈希属性中。
您可以创建 Dist::Zilla::Stash::Generic,然后出于不同原因将其注册多次:
[%Generic / Pies]
favorite = pumpkin
hated = rhubarb
firstever = quince
[%Generic / Passwords]
pause = PeasAreDelicious
google = secret
reddit = SecretPeasAreDelicious
...然后,根据需要,在模板中说...
{{ $zilla->stash_named('Passwords')->get_var('pause' }}
如果我正在制作很多使用这种通用东西的文件,我会传递他们的 Text::Template 实例一个get_password
像这样调用的闭包:
get_password => sub { $zilla->stash_named('Passwords')->get_var($_[0]) }
那么你的模板可以包括:
Login with: {{ get_password("pause") }}
这个答案显然会为您留下一些来源,但我认为它应该指向我用来做您想做的所有事情。