【发布时间】:2019-01-20 12:37:02
【问题描述】:
当一个请求到达我的 dancer2 应用程序时,我想设置一个对象,该对象可由处理此请求所涉及的所有包访问。
如何确保此对象仅在此单个请求中具有范围,并且其他请求无法访问?
具体来说,当执行通过我的库时,该对象应填充各种消息(错误、警告、调试消息等)。
显然,这些消息是特定于请求的,我担心天真地声明对该消息对象的全局引用会将其暴露给所有访问应用程序的请求。
我正在考虑在路由器中创建此消息类的实例,然后在处理此请求所涉及的所有方法中传递对它的引用。
我的直觉告诉我,我在架构方面缺少关于 dancer2 的一些基本内容,所以我决定问你。顺便说一句,这是我在这里的第一篇文章,所以对于我的问题可能存在的任何不足之处,我深表歉意。
【问题讨论】:
-
嗨@Joe,您的描述听起来像是您正在寻找一种记录消息的方法...如果是这样,请查看所有可用的
Dancer2::Logger::*的精美模块...如果不是,那么当你试图传递东西时,这肯定是错误的方式。 -
嗨@vanHoesel,谢谢。但我希望我的库完全与 dancer2 无关。事实上,我正在实现一个我想独立于 dancer2 使用的 API,正如 ysth 在他的回答中正确假设的那样。