File: /var/www/heifetz/heifetz-app/config.php
<?php
use Dotenv\Dotenv;
const ENV_TEST = 'test';
const ENV_DEVELOPMENT = 'dev';
$productionEnvs = [];
$testEnvs = [ENV_TEST];
$_CONFIG = new StdClass;
$dotenv = Dotenv::createImmutable(ROOT);
try {
$dotenv->load();
} catch (Exception $exception) {
echo $exception->getMessage();
}
$dotenv->required(['APPLICATION_ENV']);
if (!defined('APPLICATION_ENV')) {
define('APPLICATION_ENV', $_ENV['APPLICATION_ENV'] ?? getenv('APPLICATION_ENV'));
}
$dotenv->required(['DOMAIN']);
define('DOMAIN', $_ENV['DOMAIN']);
define('IS_PROD', in_array(APPLICATION_ENV, $testEnvs));
define('IS_TEST', in_array(APPLICATION_ENV, $testEnvs));
const IS_DEV = ENV_DEVELOPMENT === APPLICATION_ENV;
if (!defined('IS_CRON')) {
define('IS_CRON', false);
}
define('IS_CLI', 'cli' === php_sapi_name());
define('REDIS_HOST', $_ENV['REDIS_HOST']);
$dotenv->required(['DB_DRIVER']);
define('DB_DRIVER', empty($_GET['DB']) ? $_ENV['DB_DRIVER'] : $_GET['DB']);
switch (DB_DRIVER) {
case 'postgres':
$dotenv->required(['POSTGRES_DATABASE', 'POSTGRES_HOST', 'POSTGRES_USER', 'POSTGRES_PASSWORD', 'POSTGRES_SCHEMA']);
$dbConfig = [
'host' => $_ENV['POSTGRES_HOST'],
'database' => $_ENV['POSTGRES_DATABASE'],
'username' => $_ENV['POSTGRES_USER'],
'password' => $_ENV['POSTGRES_PASSWORD'],
'charset' => 'utf8mb4',
'schema' => $_ENV['POSTGRES_SCHEMA'],
];
$dbReplicaConfig = $dbConfig;
$dbReplicaConfig['host'] = $_ENV['POSTGRES_REPLICA'] ?? $dbConfig['host'];
break;
case 'mysql':
default:
$dotenv->required(['MYSQL_DATABASE', 'MYSQL_HOST', 'MYSQL_USER', 'MYSQL_PASSWORD']);
$dbConfig = [
'host' => $_ENV['MYSQL_HOST'],
'database' => $_ENV['MYSQL_DATABASE'],
'username' => $_ENV['MYSQL_USER'],
'password' => $_ENV['MYSQL_PASSWORD'],
'charset' => 'utf8mb4',
];
$dbReplicaConfig = $dbConfig;
$dbReplicaConfig['host'] = $_ENV['MYSQL_REPLICA'] ?: $dbConfig['host'];
break;
}
$_CONFIG->db = ['write' => $dbConfig, 'read' => $dbReplicaConfig];
$_CONFIG->debug = $_ENV['DEBUG'];
$_CONFIG->debugJs = $_ENV['DEBUG_JS'];
$_CONFIG->debugSocket = $_ENV['DEBUG_SOCKET'];
$_CONFIG->debugShowTrace = $_ENV['DEBUG_SHOW_TRACE'];
define('DEBUG', (bool) $_CONFIG->debug);
define('DEBUG_JS', (bool) $_CONFIG->debugJs);
define('DEBUG_SOCKET', (bool) $_CONFIG->debugSocket);
define('DEBUG_SHOW_TRACE', (bool) $_CONFIG->debugShowTrace);
// Check for AJAX method
$is_AJAX = (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
define('IS_AJAX', $is_AJAX);
const MAX_UPLOAD_FILESIZE = 20;