我有一个运行PHP 7.2.14和CakePHP 3.7.9的Docker容器
我看到的问题是由于某种原因Security.salt为空。这是app.php文件中的标准行:
'Security' => [
'salt' => env('SECURITY_SALT', 'mySalt')
],
当我用Configure::read('Security.salt')
检查代码中的值时,它为空。如果我输入error_log(env('SECURITY_SALT', 'blah'));
,则会在日志文件中看到blah
。因此,这意味着env()
正常工作,并且应将盐设置为mySalt
。
所以这是一个bug,以某种方式Security.salt
被覆盖了吗?还是该默认行为仅在内部使用,并且在内部读取后设置为null?
还是该默认行为仅在内部使用,并且在内部读取后设置为null?
有点像这样,是的。某些配置在某个时候被“消耗”,在3.7应用程序模板中,默认情况下为Cache
,Datasources
,EmailTransport
,Email
,Log
和Security.salt
,请参见您的应用程序[C0 ]文件。
config/bootstrap.php
如果以后要访问这种配置,则应该通过使用它的类来访问它,在您的情况下,该类是https://github.com/cakephp/app/blob/3.7.1/config/bootstrap.php#L150-L155类,即通过以下方式读取它:]
Security
另请参见
\Cake\Utility\Security::getSalt()