我使用数据库的MySQL In-App选项在Azure下运行Joomla。一切都很好,但是我无法在JConfig中获得数据库配置变量,无法从MySQLConnstr_localdB环境变量中动态拉动。
我已经尝试了在此处发布的MS建议解决方案/,并尝试了从环境变量中提取信息并将变量设置为结果的各种方法,但一切都没有成功。似乎唯一起作用的是对主机地址进行硬编码。
一个例子可能就是这样:
class JConfig {
...
$hostVar = getenv("MYSQLCONNSTR_localdb");
$hostArray = array();
foreach( explode( ';', $hostVar ) as $substr )
{
$asplode = explode('=', $substr);
$hostArray[ $asplode[0] ] = $asplode[1];
}
public $host = $hostArray['Data Source'];
...
到目前为止,来自硬编码地址的所有变化都是"错误"。在前端。
我将作业移至JCONFIG类的构造函数。因此,我可以很好地对接它。
class JConfig {
public $smtpuser;
public $smtppass;
public $smtphost;
public $host;
public $user;
public $password;
public $db;
function __construct() {
$this->smtpuser = getenv('SMTP_USER');
$this->smtppass = getenv('SMTP_PASSWORD');
$this->smtphost = getenv('SMTP_HOST');
$this->host = getenv('JOOMLA_DB_HOST');
$this->user = getenv('JOOMLA_DB_USER');
$this->password = getenv('JOOMLA_DB_PASSWORD');
$this->db = getenv('JOOMLA_DB_NAME');
}