Symfony服务”uri_signer”依赖于不存在的参数”kernel.secret”

如果你在Symfony项目中遇到以下异常:
【Symfony服务” uri_signer” 依赖于不存在的参数” kernel.secret” 】致命错误:消息为” 服务uri_signer” 的未捕获异常” Symfony \ Component \ DependencyInjection \ Exception \ ParameterNotFoundException” 对不存在的参数” kernel.secret” 具有依赖性。你的意思是:” kernel.charset” 吗?
在本文中, 你将学习如何在本文中轻松解决它。
解该错误只是警告某些使用的配置YAML文件中缺少secret参数。基本上, 当你以某种方式需要工作时, 就会导致该问题:修改, 使用项目中的多个索引应用程序文件或修改配置YAML文件。此错误通常发生在需要你修改诸如MobileDetectBundle之类的文件的包的实现中。
要解决此问题, 你需要做的第一件事是检查config.yml或自定义的YAML配置文件, 然后导入parameters.yml文件:

imports:- { resource: parameters.yml }

在parameters.yml中(你将原谅重复操作), 一个用secret标识的参数。如你所知(或可能不是), 秘密是一个字符串, 对于你的应用程序应该是唯一的, 并且通常用于为安全性相关的操作添加更多的熵。它的值应该是随机选择的一系列字符, 数字和符号, 建议长度约为32个字符。请记住, 该值不能为null或为空。
然后, 一旦将文件导入到config.yml(或自定义配置文件)中, 就可以像下面这样在框架区域中添加secret属性:
framework:secret: "%secret%"

最后, 不要忘记手动删除缓存文件夹或运行symfony命令php bin / console cache:clear – env = prod来清除项目的缓存。
编码愉快!

    推荐阅读