Настройки базы данных Joomla configuration.php, работающие в приложениях Azure и MySql-In

Я запускаю Joomla под Azure, используя опцию MySQL In-App для базы данных. Все прошло хорошо, но мне не удалось получить переменные конфигурации базы данных в JConfig для динамического извлечения из переменной среды MYSQLCONNSTR_localdb.

Я попробовал предлагаемое MS решение, размещенное здесь https://blogs.msdn.microsoft.com/azureossds/2016/12/09/mysql-in-app-configuration-for-php-content-management-systems/, и пробовали различные способы извлечения информации из переменной среды и установки переменных в результаты, но все безуспешно. Единственная вещь, которая, кажется, работает - это жесткое кодирование адреса хоста, что... проблематично.

Примером может быть что-то вроде этого:

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'];
...

До сих пор все варианты жестко закодированного адреса были "Ошибка". на переднем конце.

0 ответов

Я переместил назначение в конструктор класса 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');
  }
Другие вопросы по тегам