【问题标题】:How to store when cache was last cleared and rebuilt in Symfony?如何存储上次在 Symfony 中清除和重建缓存的时间?
【发布时间】:2014-09-23 18:49:27
【问题描述】:

我为我的 Symfony 应用程序创建了一个部署脚本,它从 git-repo 获取更新。它下载依赖项,更新架构,安装资产,然后清除和预热缓存

它运作良好(据我所知?)但我需要一种方法来获取/存储上次清除缓存的时间。最好我不想从 shell 写入文件或更新数据库中的记录,我宁愿检测/获取上次在我的 Symfony 应用程序中清除和重建它的时间。

有没有办法做到这一点?我想到了获取prod缓存文件夹的创建时间..

这是我写的脚本:https://github.com/StrikeForceZero/DeploySymfony/blob/master/DeploySymfony.sh

【问题讨论】:

    标签: php bash symfony apc


    【解决方案1】:

    一种方法是使用 Symfony 的内置日志服务 Monolog (http://symfony.com/doc/current/cookbook/logging/monolog.html) 写入 Symfony 日志。您可以创建一个 Symfony 控制台命令 (http://symfony.com/components/Console),您的脚本执行该命令以写入日志,或者您可以使用继承来覆盖您想要记录的 Symfony 方法之一,它只是调用记录器服务,更新记录,并调用其父方法。

    例如,您可以调用从 CacheClearCommand 继承的子方法,而不是调用 'app/console cache:clear',更新 configure 方法为您的命令设置一个新名称,覆盖 execute 方法来调用您的日志(在孩子执行其父母之前或之后),这应该是关于它的。在你的部署脚本中调用你的自定义 cache:clear 命令而不是 Symfony 的。

    【讨论】:

    • 我没有考虑使用自定义控制台命令。有趣的。这是否可以使用学说并写入数据库?
    • 是的。由于控制台命令是容器感知的,因此您可以获取适用于您的应用程序的任何服务,包括原则服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2017-12-21
    • 2014-03-12
    • 2018-05-26
    • 1970-01-01
    • 2019-05-22
    相关资源
    最近更新 更多