1

我目前正在创建/重新构建一个相当大的 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');

唯一的缺点是,如果我必须在函数中引用它们,因为它们不是像$_GLOBALSor$_SESSION变量这样的超全局变量,例如,我必须这样做:

function database_connect( ... ) {
    global $API_KEY, $APP_ID, $API_URL; //etc...
    ...
    ...
}

如果可以的话,我想避免通过函数传入我的 API 密钥。我希望在声明站点范围的全局常量方面获得一些最佳实践,并且可能避免global在每个函数的开头调用关键字。

我应该const在我的声明中使用吗?使用 define() 函数有什么好处?

我在做正确的事情require_once()还是有更好的方法来做到这一点?

大家怎么看?我应该怎么做?谢谢!

4

0 回答 0