eesyphp/includes/core.php

101 lines
2.8 KiB
PHP
Raw Normal View History

2020-04-18 00:51:33 +02:00
<?php
2023-01-29 19:45:38 +01:00
use EesyPHP\Email;
use EesyPHP\I18n;
use EesyPHP\Log;
2023-01-29 18:17:50 +01:00
use EesyPHP\SentryIntegration;
use EesyPHP\SentrySpan;
use EesyPHP\SentryTransaction;
use EesyPHP\Session;
2023-01-29 19:18:10 +01:00
use EesyPHP\Url;
2020-04-18 00:51:33 +02:00
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
// Root directory path
$script = null;
if (defined('__FILE__') && constant('__FILE__')) {
2022-04-24 17:43:44 +02:00
$script = __FILE__;
2020-04-18 00:51:33 +02:00
}
else {
2022-04-24 17:43:44 +02:00
// Fallback method : detect path from core.php path
foreach(get_included_files() as $script)
if (basename($script) == 'core.php')
break;
2020-04-18 00:51:33 +02:00
}
if (!$script) die('Fail to detect root directory path');
$root_dir_path = realpath(dirname($script).'/../');
2020-04-18 00:51:33 +02:00
// Include App's includes and vendor directories to PHP include paths
set_include_path($root_dir_path.'/includes' . PATH_SEPARATOR . get_include_path());
// Load composer autoload.php
require("$root_dir_path/vendor/autoload.php");
// Load configuration
require_once('config.inc.php');
// Load local configuration file is present
if (is_file("$root_dir_path/includes/config.local.php")) {
require "$root_dir_path/includes/config.local.php";
2020-04-18 00:51:33 +02:00
}
2023-01-29 18:17:50 +01:00
SentryIntegration :: init(
isset($sentry_dsn)?$sentry_dsn:null,
isset($sentry_traces_sample_rate)?$sentry_traces_sample_rate:null,
isset($sentry_php_error_types)?$sentry_php_error_types:null,
);
$sentry_transaction = new SentryTransaction();
$sentry_span = new SentrySpan('core.init', 'Core initialization');
2020-04-18 00:51:33 +02:00
// Define upload_tmp_dir
if (isset($upload_tmp_dir))
ini_set('upload_tmp_dir', $upload_tmp_dir);
2020-04-18 00:51:33 +02:00
if (!isset($log_file))
die('Log file path not configured');
Log::init(
$log_file,
isset($log_level)?$log_level:null,
isset($log_php_errors_levels)?$log_php_errors_levels:null
);
2020-04-18 00:51:33 +02:00
require_once('functions.php');
Session :: init(
isset($session_max_duration)?$session_max_duration:null,
isset($session_timeout)?$session_timeout:null
);
2020-04-18 00:51:33 +02:00
// Nomenclatures
$status_list = array (
'pending' => I18n :: ___('Pending'),
'validated' => I18n :: ___('Validated'),
'refused' => I18n :: ___('Refused'),
'archived' => I18n :: ___('Archived'),
2020-04-18 00:51:33 +02:00
);
require_once('cli.php');
require_once('templates.php');
2023-01-29 19:18:10 +01:00
Url::init(isset($public_root_url)?$public_root_url:null);
2020-04-18 00:51:33 +02:00
require_once('url-helpers.php');
require_once('db.php');
2023-01-29 19:45:38 +01:00
Email :: init(
isset($mail_sender)?$mail_sender:null,
isset($mail_send_method)?$mail_send_method:null,
isset($mail_send_params)?$mail_send_params:null,
isset($mail_catch_all)?$mail_catch_all:null,
isset($mail_headers)?$mail_headers:null,
isset($php_mail_path)?$php_mail_path:null,
isset($php_mail_mime_path)?$php_mail_mime_path:null,
);
// Initialize translation
I18n::init(
"$root_dir_path/locales",
isset($default_locale)?$default_locale:null);
foreach($status_list as $key => $value)
2022-04-24 17:43:44 +02:00
$status_list[$key] = _($value);
$sentry_span->finish();
# vim: tabstop=2 shiftwidth=2 softtabstop=2 expandtab