在 Laravel 框架中删除硬编码的 Mysql 凭据

Remove hardcoded Mysql Credentials in Laravel Framework

抱歉,如果我的问题很愚蠢,但我找不到任何帮助。我收到一份 Laravel 5 应用程序测试报告,建议从 app/config/database.php 中删除硬编码凭据。但是我还能在哪里保存数据库凭据以及如何保存?

laravel 项目根目录中有一个 .env 文件。您应该在那里添加凭据。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=

并在 database.php -

        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),

为了更好地理解,请阅读 Laravel 官方 doc

您可以将这些类型的信息存储在您的环境 (.env) 文件中。

此文件存在于您的项目根目录中,如果不存在,您可以手动创建它或复制 .env.example 文件(如果存在)。

数据存储示例:

//.env file
DB_NAME="project_db"

并在您的 laravel 项目的任何其他文件中使用此变量:

ENV('DB_NAME') //returns "project_db"

就这么简单。 注意 .env 文件取决于项目当前使用的环境,并且可能必须在不同的环境中更改。通常 .env 文件不会存储在存储库中,也不会将整个项目部署到新环境中。