全局PHP应用程序配置常量& “包含”

时间:2013-07-18 01:35:10

标签: php constants global

我目前正在创建/重建一个相当大的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$_SESSION变量这样的超级全局变量,例如,我必须这样做:

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

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

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

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

你们都在想什么?我该怎么做? 谢谢!

0 个答案:

没有答案