登录 mysql 数据库需要凭据。我在名为 class.DBOne.php
的 PHP 类中拥有这些凭据。
这是在服务器上的一个 git 仓库中。我使用推送来部署。
我想与一些合约开发者共享 repo 协议(protocol),但我不希望他们访问凭据。
我该如何缓解这种情况?
凭据应该是什么?
这是一个片段:
<?php
// creates one instance of a database
class DBOne
{
private $DB_USER = 'foo';
private $DB_PASS = 'foo';
private $DB_DRIVER = 'mysql:dbname=foo;host=localhost';
// singleton uses static variable to ensure only 1 instance at a time
private static $database;
private function __construct()
{
$this->checkForClearDB();
// self::checkForClearPostgres();
try
{
// instaniate a database connection
self::$database = new PDO( $this->DB_DRIVER, $this->DB_USER, $this->DB_PASS );
}
catch( PDOException $pdoError )
{
echo 'pdo connection failed: ' . $pdoError->getMessage();
}
}
最佳答案
将凭据移至单独的文件, 并使内容尽可能简单, 本质上只是变量赋值,像这样:
<?php
$DB_USER = 'foo';
$DB_PASS = 'foo';
$DB_DRIVER = 'mysql:dbname=foo;host=localhost';
?>
并且不要在版本控制中添加这个文件。添加一个示例文件, 开发人员应根据其本地开发数据库进行自定义。
当你在另一个文件中使用这些变量时,
您必须使用 global
关键字表明它们在全局范围内,例如:
global $DB_USER, $DB_PASS, $DB_DRIVER;
关于php - mysql 的凭据应该放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33445187/