我會做的是使用存儲或插件來存儲變量。存儲就像插件,但它們不會做什麼,但存儲數據,並且它們可以放入您的全局配置以及您的dist.ini
。
[%Vars]
favorite_pie = pumpkin
然後你就可以得到他們這樣的:
$zilla->stash_named('%Vars')->favorite_pie
這是假設你所做DIST ::吉拉::藏匿::瓦爾和給它一個favorite_pie屬性。
儘管如此,您可以創建一個完全通用的存儲器,它接受任何關鍵字。爲此,我會查看Dist :: Zilla :: Plugin :: Prereqs的來源,它允許任意配置選項並將它們推入其BUILDSARGS
方法中的哈希屬性中。
你可以做,當你想爲不同的原因DIST ::吉拉::藏匿::通用的,然後將其註冊多次:
[%Generic/Pies]
favorite = pumpkin
hated = rhubarb
firstever = quince
[%Generic/Passwords]
pause = PeasAreDelicious
google = secret
reddit = SecretPeasAreDelicious
...然後,根據需要,在說模板...
{{ $zilla->stash_named('Passwords')->get_var('pause' }}
如果我做了很多是使用這種通用的東西的文件,我想通過他們的文字::模板實例封閉稱爲get_password
這樣的:
get_password => sub { $zilla->stash_named('Passwords')->get_var($_[0]) }
然後你的模板可能包括:
Login with: {{ get_password("pause") }}
這個答案顯然讓一些源挖你,但我認爲它應該在所有我原本是用來做你想做的碎片點。
好吧,我可以用預定義鍵創建一個特定的'Dist :: Zilla :: Stash :: ...'模塊(看起來很簡單),並在'dist.ini'或全局配置中指定值。如果我厭倦編輯並添加新的密鑰,可以創建更通用的解決方案。我有點希望一般情況下是'Dist :: Zilla :: Plugin :: GatherDir :: Template'可以做的事情,而我只是用它錯了;唉。 –