2020-05-08 22:53:21 +00:00
< ? php
namespace EEPROM ;
2022-07-06 16:58:40 +00:00
use Index\Environment ;
use Index\Data\ConnectionFailedException ;
use Index\Data\DbTools ;
2020-05-08 22:53:21 +00:00
define ( 'PRM_STARTUP' , microtime ( true ));
define ( 'PRM_ROOT' , __DIR__ );
define ( 'PRM_CLI' , PHP_SAPI === 'cli' );
define ( 'PRM_DEBUG' , is_file ( PRM_ROOT . '/.debug' ));
define ( 'PRM_PUBLIC' , PRM_ROOT . '/public' );
define ( 'PRM_SOURCE' , PRM_ROOT . '/src' );
2022-07-06 20:42:26 +00:00
define ( 'PRM_DEBUG_PAGES' , PRM_ROOT . '/debug-pages' );
2020-05-08 22:53:21 +00:00
define ( 'PRM_UPLOADS' , PRM_PUBLIC . '/data' );
define ( 'PRM_THUMBS' , PRM_PUBLIC . '/thumb' );
2023-10-21 01:02:04 +00:00
require_once PRM_ROOT . '/vendor/autoload.php' ;
2022-07-06 16:58:40 +00:00
Environment :: setDebug ( PRM_DEBUG );
2020-05-08 22:53:21 +00:00
mb_internal_encoding ( 'utf-8' );
date_default_timezone_set ( 'utc' );
set_exception_handler ( function ( \Throwable $ex ) {
http_response_code ( 500 );
header ( 'Content-Type: text/plain; charset=utf-8' );
if ( PRM_DEBUG )
echo ( string ) $ex ;
exit ;
});
set_error_handler ( function ( int $errno , string $errstr , string $errfile , int $errline ) {
throw new \ErrorException ( $errstr , 0 , $errno , $errfile , $errline );
return true ;
}, - 1 );
if ( ! is_dir ( PRM_UPLOADS ))
mkdir ( PRM_UPLOADS , 0775 , true );
if ( ! is_dir ( PRM_THUMBS ))
mkdir ( PRM_THUMBS , 0775 , true );
$configPath = PRM_ROOT . '/config.ini' ;
if ( ! is_file ( $configPath ))
die ( 'EEPROM configuration is missing.' );
Config :: load ( $configPath );
2022-07-06 16:58:40 +00:00
if ( ! Config :: has ( 'Database' , 'dsn' ))
2020-05-08 22:53:21 +00:00
die ( 'EEPROM database is not configured.' );
2022-07-06 16:58:40 +00:00
try {
$db = DbTools :: create ( Config :: get ( 'Database' , 'dsn' ));
} catch ( ConnectionFailedException $ex ) {
echo '<h3>Unable to connect to database</h3>' ;
die ( $ex -> getMessage ());
}