最佳实践-区分环境(PHP)


Best practice - Distinguish between environments (PHP)

我需要在本地开发环境中做一些轻微的配置更改。因此,我想知道区分不同环境的"最佳实践"是什么。我想只有一个配置文件,这将根据它执行的环境不同的行为。

在不同的环境中使用不同的.env文件是一种常见的好做法。

基本上,.env文件是加载自定义配置的一种简单方法您的应用程序不需要修改的变量.htaccess文件或Apache/Nginx虚拟主机。这意味着你不会必须编辑项目外的任何文件,以及所有环境变量总是设置的,无论你如何运行你的项目——Apache,Nginx, CLI,甚至PHP 5.4的内置web服务器。这就简单多了而不是其他设置环境变量的方法你一定会喜欢的。

您可以使用一些已经创建的包将其添加到您的项目中。检查这个:https://github.com/vlucas/phpdotenv

示例(仅用于演示,而不是用于生产的代码!):

注意!您需要将.env添加到.gitignore文件,以保持其在不同环境之间不同步。

开发.env文件:

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=

生产.env文件:

DB_HOST=192.168.10.1
DB_USER=dbUser
DB_PASSWORD=123456

可能的config.php文件:

<?php
// add composer autoload somewhere here...
$dotenv = new Dotenv'Dotenv(__DIR__);
$dotenv->load();
return [
    'db' => [
        'host' => getenv('DB_HOST'),
        'user' => getenv('DB_USER'),
        'pass' => getenv('DB_PASSWORD'),
    ]
]