我有一组API密钥,它们在我的代码库中是恒定的--我有一个dev密钥和一个live密钥。它们存储在自己的“keys.php”文件中。
我有一个处理API访问的类,并且我将键作为类常量存储在类中。
我希望能够将dev键替换为活动键,并在我的类的静态方法中访问它们。
当我像这样给类常量赋值时,这可以很好地工作:
const API_USER_NAME = 'user_name';
但希望将键存储在自己的文件中,并将它们包含在类文件中,并按如下方式定义这些常量:
const API_USER_NAME = $user_name;
但是显然我不能将一个变量赋给一个常量,即使这个变量在程序执行期间不会改变值。
有没有其他方法可以使用变量来赋值给常量?或者至少,将它们的关键字保存在集中的文件中,但仍然在我的类的静态方法中访问它们?
发布于 2018-12-11 08:30:07
您可以简单地将键本身定义为常量:
keys.php
const KEY_USER_NAME = 'user_name';
const KEY_USER_AGE = 'user_age';
// ...
班级
require $path_to_somewhere . '/keys.php';
class YourClass
{
const API_USER_NAME = KEY_USER_NAME;
const API_USER_AGE = KEY_USER_AGE;
// ...
}
发布于 2018-12-11 08:04:32
你可以使用.env来解决这个问题。
https://github.com/vlucas/phpdotenv
要获得您想要的结果,您可以在项目中的受保护文件夹中定义一个.env文件,并将gitignore设置为不存放您的.env。然后,在生产环境中,您可以使用您的产品定义的常量来设置.env。有很多使用.env的框架,Laravel就是一个很好的例子。
https://stackoverflow.com/questions/53715441
复制相似问题