Symfony 一次性实例化一项服务并与多个用户一起使用

2024-01-11

我正在尝试做一项仅实例化一次的服务。然后当新用户访问我的主页时,我可以在需要时重新使用它。 我想做的是一个实例化后设置日期时间的服务。当任何用户连接到我的主页时,我会向我的服务发送一个日期时间,然后比较两个日期时间(实例化服务时的日期时间和用户的日期时间),如果小时 >= 1,则执行某些操作。

我的问题是,当我刷新主页时,服务的日期时间是现在的时间,而不是我第一次实例化它的时间。似乎当我刷新时,它会重新创建一个新服务,但这不是我想要的。我检查了生产和开发,它没有改变任何东西。有什么办法可以做到这一点,或者这些服务不应该以这种方式工作吗?如果是这样,我该怎么办?

谢谢你们的帮助!


你无法实现它php直接地。为了php每个调用(页面刷新)都是一个单独的请求,因此每个调用都会创建类的一个新实例(定义为服务) - 这个新实例对设置了日期时间的前一个实例一无所知。

您可以通过(至少)两种方式解决这个问题:

1. 会议

创建您的服务类并将当前日期时间存储在会话中。下次调用(并实例化)您的服务时,您将检查之前的请求时间。该解决方案的缺点是会话将超时并且特定于用户,据我所知,无论哪个用户调用您的操作,您都希望拥有此会话。参见解决方案 2

2. 坚持

将日期时间保存在某个持久层中 - 例如数据库或文件。然后您可以从该数据源读取您的服务并了解当前请求和上一个请求之间的时间差是多少(并且您不必担心用户或会话超时)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony 一次性实例化一项服务并与多个用户一起使用 的相关文章

随机推荐

  • ISO 8601 定义感恩节的重复间隔?

    我试图定义一个每年重复的时间间隔 从 11 月的第四个星期四的 13 30z 开始 到同一天的 15 00z 结束 这可以使用 ISO 8601 来完成吗 这种重复无法用当前的 ISO 8601 来表达 ISO 8601 的下一版本很可能包
  • 在 jQuery click() 期间处理程序是否总是同步调用?

    通过一些简短的测试看来click 将触发任何适用的处理程序同步地 也就是说 处理程序都在之前调用click 返回 这对于我正在开发的东西来说是理想的 然而 jQuery 文档似乎并没有保证 没有提到一种或另一种方式 处理程序是同步调用的 同
  • 让文本输入框透明?应该很简单吧?

    我试图使我的表单输入透明并将其覆盖在我的 div 之上 基本上我希望文本字段对其后面的任何内容都是透明的 有什么建议么
  • 哪里可以下载 eclipse 4.4 的 google 插件?

    谷歌的一些服务在这里被屏蔽 我无法从更新站点安装谷歌的插件 那么在哪里下载eclipse 4 4的插件存档 目前 谷歌的官方网站只提供4 3的存档 干得好 http dl google com eclipse plugin core 4 4
  • iOS 如何处理 URL 方案重复?

    如果另外 2 个应用程序注册相同的 url 方案 iOS 如何处理这个问题 The iOS 文档 http developer apple com library ios documentation iPhone Conceptual iP
  • 调试测试时使用 DatabaseManager 连接到内存 Hsql(高超音速)数据库

    我想在 IDE Intellij IDEA 11 1 2 中调试测试时使用 hsql DatabaseManager 或 swing 版本 这并不重要 连接到内存中的 HSQL 数据库实例 我已经按照建议尝试过这个答案 https stac
  • 在 C# 中显示带有 alpha 通道的 PNG

    有没有办法在 C 应用程序中正确显示带有 alpha 通道的图像 比如说 PNG 感谢您的任何建议 UPDATE 好吧 我的问题有点不准确 我想获得 Alpha 通道的真正透明度 不填充父级的背景颜色 在下图中我们可以看到支持透明度 但按钮
  • Objective C 类别的实例变量

    我遇到的情况是 我似乎需要将实例变量添加到类别中 但我从 Apple 的文档中知道我不能这样做 所以我想知道最好的替代方案或解决方法是什么 我想要做的是添加一个类别 为 UIViewControllers 添加功能 我会发现它在我所有不同的
  • 在大型分箱数据集上使用“ggplot”时出现内存泄漏

    我正在制作各种ggplot在非常大的数据集上 比示例大得多 我在 x 轴和 y 轴上创建了一个分箱函数 以便能够绘制如此大的数据集 在下面的示例中 memory size 是在开始时记录的 然后将大数据集模拟为dt dt s x2是针对x1
  • SQL Server 的自定义处理器 + DBCPConnectionPool:未加载驱动程序 jar

    I have created a controller service to connect to a test db 我有一个自定义处理器 可以从 SQL Server 读取数据 模拟测试 构建和部署到 NiFi 都成功 处理器遇到错误
  • PHP 5.5.X 及更高版本中是否需要再使用 & 符号?

    我到处都收到混合信号 我是否使用 符号通过引用传递变量 以下链接似乎告诉我它已被弃用并且不再需要 http gtk php net manual en html tutorials tutorials changes references
  • 我可以将 LayoutPrams 与 ViewGroup.addView 一起重复使用吗?

    Does ViewGroup addView clones LayoutParams数据放到里面还是链接到呢 我可以重用同一个实例吗LayoutParams多次调用addView 有不同的看法吗 apidoc 中没有任何相关内容 WOW 答
  • 压缩后的位图质量=比原始文件大小大 100 倍

    我正在尝试将图像发送到服务器 在发送之前 我会减小其大小和质量 然后解决任何旋转问题 我的问题是 旋转图像后 当我保存它时 文件比以前大 旋转前大小为 10092 旋转后大小为 54226 Scale image to reduce it
  • 表值函数和实体框架

    我正在尝试使用实体框架执行 TVF 但由于某种原因它不起作用 也许那里的任何人都可以帮助我解决这个问题 以下是代码示例 这就是函数 CREATE FUNCTION dbo udf profileSearch keywords NVARCHA
  • Kotlin:创建自定义 CoroutineContext

    我在 API 后端使用 Kotlin 我不想在中运行数据库查询common pool 基本上 我想创建一个CoroutineContext有许多与数据库匹配的线程maximumPoolSize 完成此任务的最佳方法是什么 一般情况下以及针对
  • 为什么有些项目的 use 子句接受 Jpeg,而其他项目则需要 vcl.imaging.jpeg?

    我正在将一些项目更新到 XE2 但我不明白为什么在某些项目上 uses jpeg 被接受 在其他方面我需要写 uses vcl imaging jpeg 你能给我解释一下吗 差异在于各个项目的项目选项中的单元范围名称设置 如果你有Vcl I
  • 如何用单斜杠替换特殊字符

    我有一个关于 Java 中字符串的问题 比方说 我有一个像这样的字符串 String str The startup trace state is info 由于字符串包含特殊字符 例如 我需要将字符串替换为 根据我的要求 如何替换特殊字符
  • R {targets} 包:如何使用字符串引用现有目标?

    我正在使用 targets 包 尝试根据现有目标创建新目标 虽然通过以 NSE 样式键入名称来引用现有目标很简单 但通过使用字符串作为 别名 却无法做到这一点 只是为了清楚我在说什么 我会表明我的意思outside the targets
  • 在 DatePickerDialog 中以数字格式而不是字母顺序显示月份字段

    下图显示了我在 Android 应用程序中的当前日期选择器 但是我想将所有月份显示为 01 02 03 12 而不是一月 二月 三月 十二月 任何帮助将不胜感激 你可以自己设计Dialog with NumberPicker 但如果你仍然想
  • Symfony 一次性实例化一项服务并与多个用户一起使用

    我正在尝试做一项仅实例化一次的服务 然后当新用户访问我的主页时 我可以在需要时重新使用它 我想做的是一个实例化后设置日期时间的服务 当任何用户连接到我的主页时 我会向我的服务发送一个日期时间 然后比较两个日期时间 实例化服务时的日期时间和用