如果Mason组件中存在这些块,那么执行顺序是什么?
%args
%init
%once
%shared
%attr
%flags
答案 0 :(得分:8)
该列表中有两种不同的块。 “可执行”块,包含可执行的perl代码,以及包含键值对的非可执行块(与perl哈希不同)。
<强>&LT;%一次&GT; 强>
只要将组件加载到内存中,就会执行此块。 它在任何其他块之前执行。
<强>&LT;%共享&GT; 强>
每个请求执行一次此块。它在&lt;%init&gt;之前执行块。
<强>&LT;%的init&GT; 强>
每次调用组件时都会执行此块。除了&lt;%once&gt;中的代码之外,它在任何其他代码之前执行。或&lt;%shared&gt;块。
<强>&LT;%ARGS&GT; 强>
此块用于声明组件所需的参数。 此外,如果没有,它还可以用于指定默认值 在调用组件时给出。
<强>&LT;%标志&GT; 强>
此块用于声明用于的特殊Mason标志 影响组件的行为。目前,只有一面旗帜 已定义,
inherit
。
<强>&LT;%ATTR&GT; 强>
此块用于声明任意键值对。不像 &LT;%标志&GT;阻止,梅森不使用内容,但可以使用 你的代码。
有关详细信息,请参阅Mason book,其中一些内容已从中复制(和修改)。