组件中Mason块的执行顺序是什么

时间:2016-07-02 10:28:16

标签: perl mason

如果Mason组件中存在这些块,那么执行顺序是什么?

  • %args
  • %init
  • %once
  • %shared
  • %attr
  • %flags

1 个答案:

答案 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,其中一些内容已从中复制(和修改)。