HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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;