/** Datei: config/init.php **/ * @copyright 2025 ARUNOX * @version 1.0.0 * @since 1.0.0 File is created */ define( "StartTime", microtime(TRUE ) ); /* ### LOAD CONFIG ################################################## # */ require_once __DIR__ . '/constants.php'; require_once __DIR__ . '/config.php'; session_start(); // session_destroy(); exit( "SESSION DESTROYED"); /* ### SET ERROR REPORTING ########################################## # */ if( DEBUG_MODE ) { error_reporting(E_ERROR | E_WARNING | E_PARSE | ~E_NOTICE ); ini_set("display_errors", "On" ); ini_set( "error_log", __DIR__ . "/error.log" ); } /* ### INCLUDE SYSTEM FILES ######################################### # */ require_once LIBRARY_DIR . '/ARUNOX/Autoloader.php'; require_once LIBRARY_DIR . '/vendor/autoload.php'; foreach( glob( FUNCTIONS_DIR . "/*.php" ) as $filename ) @include_once $filename; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.show.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.guid.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.extend.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.is_list.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.is_assoc.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.redirect.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.dateformat.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.fuzzy_match.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.uniqid_index.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.http_get_query.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.http_build_url.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.parse_url_full.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.glob_recursive.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.extend_url_query.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.sanitize_filename.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.array_sort_column.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.is_multidimensional.php'; require_once dirname( __DIR__, 3 ) . '/core/functions/de.arunox.tools.array_reduce_recursive.php'; ARUNOX\API\Filesystem\Local::setAsDefault(); ARUNOX\API\Filesystem\Local::setRootDir( UPLOADS_DIR ); ARUNOX\API\Filesystem\Local::setRootUrl( UPLOADS_URL ); ARUNOX\Core\Theme::setRootDir( THEMES_DIR ); ARUNOX\Core\Theme::setRootURL( THEMES_URL ); ARUNOX\Core\Errors::init(); ARUNOX\Tools\Debug::setDebugging( isset( $_GET["debugging"] ) ); ARUNOX\Tools\Debug::setStartTime( StartTime ); ARUNOX\Tools\Debug::addExcludedUrl( "/favicon.ico", "GET" ); ARUNOX\Core\Cache::setRoot( CACHE_DIR ); try { ARUNOX\Database\Connections::connect([ "host" => DB_HOST, "dbname" => DB_NAME, "charset" => DB_CHARSET, "user" => DB_USER, "pass" => DB_PASS, ]); } catch( PDOException $e ) { die( "Database initialization failed: {$e->getMessage()}" ); } foreach( ESSENTIAL_DIRS as $dir ) { if( !is_dir( $dir ) ) { mkdir( $dir, 0755, true ); } } if( !file_exists(STORAGE_DIR . '/logs') ) { mkdir(STORAGE_DIR . '/logs', 0755, true); } ARUNOX\Core\Hooks::apply("config::init" ); ARUNOX\Tools\Debug::log( "config::init" ); /* ### LOAD PLUGINS ################################################# # */ preg_match( "/(^|\/)([a-z]+)\./", $_SERVER["SCRIPT_NAME"], $matches ); define( "PUBLIC_SCRIPT_NAME", $matches[2] ); define( "REQUEST_URI", ARUNOX\HTTP\Request::uri() ); define( "REQUEST_METHOD", ARUNOX\HTTP\Request::method() ); define( "REQUEST_ROUTE", preg_replace( "/^\/api\/v1(\/rest)?/", "", REQUEST_URI ) ); define( "REQUEST_VERSION", preg_replace( "/^(\/api\/)v1(\/.*)/", "", REQUEST_URI ) ); define( "REQUEST_TYPE_REST", (bool)preg_match( "/^\/api\/v1\/rest/",REQUEST_URI ) ); $allPlugins = []; foreach( ARUNOX\Core\Plugins::getPreload() as $pluginName => $plugin ) { $allPlugins[] = $pluginName; ARUNOX\Core\Hooks::register( $pluginName ); ARUNOX\Core\Hooks::apply("config::preload->plugin.{$pluginName}", $plugin ); } ARUNOX\Core\Hooks::apply("config::preload->loaded" ); ARUNOX\Tools\Debug::log( "config::preload->loaded" ); foreach( ARUNOX\Core\Plugins::getActive() as $pluginName => $plugin ) { $allPlugins[] = $pluginName; ARUNOX\Core\Hooks::register( $pluginName ); ARUNOX\Core\Hooks::apply("config::plugins->plugin.{$pluginName}", $plugin ); ARUNOX\Tools\Debug::log("config::plugins->plugin.{$pluginName}", "plugins" ); } ARUNOX\Core\Hooks::apply("config::plugins->loaded" ); ARUNOX\Tools\Debug::log( "config::plugins->loaded" ); foreach( $allPlugins as $pluginName ) { foreach( glob_recursive( PLUGINS_DIR . "/{$pluginName}/library/Model.php" ) as $filename ) { @include_once $filename; $filename = str_replace( PLUGINS_DIR . "/{$pluginName}/library/", "", $filename ); $filename = str_replace( DIRECTORY_SEPARATOR, "\\", $filename ); $filename = str_replace( ".php", "", $filename ); $filename::getHashId(1); $filename::getTable(); } } /* ### DEFINE CONSTANTS ############################################# # */ ARUNOX\Core\Hooks::apply("config::constants" ); define( "FORMAT_DATE", ARUNOX\Core\Hooks::filter( 'config::constants->FORMAT_DATE', "Y-m-d" ) ); define( "FORMAT_TIME", ARUNOX\Core\Hooks::filter( 'config::constants->FORMAT_TIME', "H:i:s" ) ); define( "FORMAT_LOCALE", ARUNOX\Core\Hooks::filter( 'config::constants->FORMAT_LOCALE', "de_DE" ) ); define( "FORMAT_TIMEZONE", ARUNOX\Core\Hooks::filter( 'config::constants->FORMAT_TIMEZONE', "Europe/Berlin" ) ); define( "FORMAT_DATETIME", ARUNOX\Core\Hooks::filter( 'config::constants->FORMAT_DATETIME', "Y-m-d H:i:s" ) ); define( "LAUNCHER", new (ARUNOX\Core\Launcher::get()) ); define( "THEME", new (ARUNOX\Core\Theme::get())() ); ARUNOX\Tools\Debug::log( "config::constants" ); /* ### LOAD THEME ################################################### # */ ARUNOX\Core\Hooks::register( THEME ); ARUNOX\Core\Hooks::apply("config::theme->loaded" ); ARUNOX\Tools\Debug::log( "config::theme->loaded" ); /* ### CONFIG LOADED ################################################ # */ ARUNOX\Core\Hooks::apply('config::loaded' ); ARUNOX\Tools\Debug::log( "config::loaded" ); /** Datei: config/constants.php **/ * @copyright 2025 ARUNOX * @version 1.0.0 * @since 1.0.0 File is created */ // Define the root directory const ROOT_DIR = __DIR__ . '/..'; // Define paths for core directories const HOME_URL = "/"; const UPLOADS_URL = HOME_URL . "uploads"; const THEMES_URL = HOME_URL . "themes"; const PLUGINS_URL = HOME_URL . "plugins"; const LIBRARY_DIR = ROOT_DIR . '/library'; const FUNCTIONS_DIR = ROOT_DIR . '/functions'; const CONFIG_DIR = ROOT_DIR . '/config'; const THEMES_DIR = ROOT_DIR . THEMES_URL; const PLUGINS_DIR = ROOT_DIR . PLUGINS_URL; // Define paths for storage const STORAGE_DIR = ROOT_DIR . '/storage'; const CACHE_DIR = STORAGE_DIR . '/cache'; const UPLOADS_DIR = STORAGE_DIR . UPLOADS_URL; // Define essential directories to initialize const ESSENTIAL_DIRS = [ STORAGE_DIR, CACHE_DIR, UPLOADS_DIR, ]; const ARUNOX_API_KEY = '$2y$10$7q8eM8tVdFv6Ey5.XzMljelUeAowKDU6jCwf27mT8XWPZn9TaZxuS'; const PUBLIC_SCRIPT_NAME_API = "api"; const PUBLIC_SCRIPT_NAME_INDEX = "index"; const TRANSLATIONS = [ "core" => [ "Product" => "Produkt", "Products" => "Podukte", "Service" => "Leistung", "Services" => "Leistungen", "active" => "aktiv", "inactive" => "inaktiv", ], ]; /** Datei: config/config.php **/ * @copyright 2025 ARUNOX * @version 1.2.1 */ // Database configuration const DB_HOST = 'mysql.80'; const DB_NAME = 'dev_arunox_framework'; const DB_USER = 'arunox'; const DB_PASS = '7yVHSmDou1jezVo@br19'; const DB_CHARSET = 'utf8mb4'; // Framework settings const DEFAULT_LANGUAGE = 'en'; const SUPPORTED_LANGUAGES = ['en', 'de', 'fr']; // Add other languages as needed // Security settings const TOKEN_SECRET = 'your-secure-token-secret'; // Replace with a secure, random key const TOKEN_EXPIRY = 3600; // Token expiry time in seconds // Debugging and Error Logging const DEBUG_MODE = true; // Set to false in production const LOG_ERRORS = true; // Enable or disable error logging // API configuration const API_VERSIONS = ['v1', 'v2']; // Supported API versions const API_DEFAULT_VERSION = 'v1'; // Default API version for backward compatibility const AUTH_HASH_SALT = '3d2e5fba1021f9488c75f1f89c5f10dd$Afx1@Z9!';