【问题标题】:What is the order of execution of Mason blocks in a component组件中 Mason 块的执行顺序是什么
【发布时间】:2016-11-04 16:09:32
【问题描述】:

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

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

【问题讨论】:

  • 随意制作一个测试模板,运行它并在代码缓存中查看编译。我在为它制作插件时已经完成了。但现在不记得了 :) 这是层次结构:github.com/Camelcade/Perl5-IDEA/issues/905
  • 感谢分享链接。只是想了解%attr。 %attr 适合该层次结构的什么位置?
  • 谢谢让我用你提到的方法弄清楚。
  • @AlexandrEvstigneev:如果您有参考资料,那么您应该发布并解释它。我完全不确定您链接的页面是否应该代表一个层次结构
  • @Borodin 我提供了一种查看序列的方法。我已经提供了解决类似问题时完成的数据的链接。换句话说:我已经分享了我现在能负担得起的数量和方式的经验。总比什么都不做要好。

标签: perl mason


【解决方案1】:

该列表中有两种不同类型的块。 “可执行”块包含可执行的 perl 代码,非可执行块包含键值对(与 perl 哈希不同)。

可执行块

只要组件加载到内存中,就会执行此块。 它在任何其他块之前执行。

这个块在每个请求中执行一次。它在 块之前执行。

每次调用组件时都会执行此块。它在任何其他代码之前执行,除了 或 块中的代码。

不可执行的块

此块用于声明组件期望的参数。 此外,如果没有,它也可以用来指定一个默认值 在调用组件时给出。

此块用于声明特殊的 Mason 标志,用于 影响组件的行为。目前,只有一个标志 已定义,inherit

此块用于声明任意键值对。不像 块,其内容不被 Mason 使用,但可用于 你的代码。

有关详细信息,请参阅Mason book,上面的部分内容是从中复制(和修改)的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多