我目前正在创建/重新构建一个相当大的 PHP 应用程序/网站,它使用一些不同的 API 和与数据库的接口。因此,我必须存储 API 密钥、应用程序密钥和其他此类配置数据,以便所有不同的文件/页面都可以集中访问它们。
目前,我在全局上下文中声明变量并使用 require_once() 将它们包括在内:
<?php //config.php
$API_KEY['somename'] = "THIS_IS_MY_API_KEY";
$API_KEY['othername'] = "ANOTHER_API_KEY";
$APP_ID['somename'] = "APP_ID_HERE";
$APP_ID['othername'] = "OTHER_APP_ID";
//So on and so forth, with all of the API data I need, like API URLs
//Also, I'm declaring things like this...
$__SITEWIDE_KILLSWITCH = false;
$__DEBUG_MODE = false;
$__DISPLAY_ERRORS = false;
?>
然后,在我的其他文件中,我像这样引用这些变量:
require_once('path/to/config.php');
唯一的缺点是,如果我必须在函数中引用它们,因为它们不是像$_GLOBALS
or$_SESSION
变量这样的超全局变量,例如,我必须这样做:
function database_connect( ... ) {
global $API_KEY, $APP_ID, $API_URL; //etc...
...
...
}
如果可以的话,我想避免通过函数传入我的 API 密钥。我希望在声明站点范围的全局常量方面获得一些最佳实践,并且可能避免global
在每个函数的开头调用关键字。
我应该const
在我的声明中使用吗?使用 define() 函数有什么好处?
我在做正确的事情require_once()
还是有更好的方法来做到这一点?
大家怎么看?我应该怎么做?谢谢!