php - Symfony 应用程序的运行时配置

标签 php symfony

我想向 Symfony 应用程序添加“维护模式”——我在运行时设置的简单 bool 配置。 Controller (或者可能是前端 Controller )可以检查这个值或者;正常处理请求,或返回 HTTP 503 和友好消息。

我可以想到 3 种可能的解决方案:

  • 参数.yml 这是放置配置的合理位置,但它会被 Symfony 应用程序缓存,使用维护模式可能需要 cache:clear 才能生效。我想避免这种情况!

  • 自定义配置文件 它可以查找“maintenance.flag”的存在或读取自定义文件中的设置。这是为每次 Controller 访问添加额外的磁盘操作,感觉效率低下。

  • 一个环境变量 它可以使用 getenv() 来查找维护模式环境变量的存在和值。这感觉是一种有效的方法,我想不出有任何负面影响。

有没有人找到实现这种功能的有效方法?我是在重新发明轮子吗?

最佳答案

有一个非常好的 symfony 包。看看这个

LexikMaintenanceBundle

您只需将它安装到您的项目中,然后您就可以使用命令行将您的站点置于维护模式。

您可以设置许多配置,例如此状态的持续时间、自定义错误页面等。

关于php - Symfony 应用程序的运行时配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35158896/

相关文章:

php 错误 - 额外循环运行一次?

php - 对返回新数组的 php 数组进行排序

php - 使用数据表加载叠加层

Javascript - 控制台成功打印我的数据时出现未捕获的 ReferenceError : azZkVUpgbG is not defined,

mysql - 强制 Doctrine 将类型 ="guid"创建为 VARCHAR(255) 而不是 CHAR(36)

Symfony 2 - 使用表单时未设置 Sluggable

tinymce - Symfony2 TinymceBundle

php - 在 MySQL 查询中放置一个 PHP 变量

php - 为什么 symfony 中的 post 请求会被识别为 GET

symfony - Snc Redis bundle 在 config.yml 中设置密码