You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IOcornerstone/src/Bootstrap.php

97 lines
2.6 KiB

<?php
declare(strict_types=1);
/**
* @author Robert Strutts
* @copyright Copyright (c) 2010-2026, Robert Strutts.
* @license MIT
*/
use IOcornerstone\Psr4AutoloaderClass;
use IOcornerstone\Framework\{
Registry as Reg,
Console,
Configure,
CliDefaults,
ErrorHandler,
APICacheAge,
Common,
Enum\ExitOnDump as endDump,
DI,
Container\AutowireContainer,
LoadAll,
Http\Kernel,
Http\HttpFactory,
Http\RouteServiceProvider,
Log\Logger
};
define("MEMORY_BASELINE", memory_get_usage());
require_once IO_CORNERSTONE_FRAMEWORK . "Psr4AutoloaderClass.php";
$loader = new Psr4AutoloaderClass();
$loader->register();
$loader->addNamespace("IOcornerstone", IO_CORNERSTONE_FRAMEWORK);
if (defined("IO_CORNERSTONE_PROJECT")) {
$loader->addNamespace("Project", IO_CORNERSTONE_PROJECT);
}
define("PSR", IO_CORNERSTONE_FRAMEWORK . 'vendor' . DIRECTORY_SEPARATOR . 'psr' . DIRECTORY_SEPARATOR);
$loader->addNamespace("Psr\Log", PSR . 'log' . DIRECTORY_SEPARATOR . 'src');
$loader->addNamespace("Psr\Container", PSR . 'container' . DIRECTORY_SEPARATOR . 'src');
$loader->addNamespace("Psr\Http\Message", PSR . 'http-message' . DIRECTORY_SEPARATOR . 'src');
$loader->addNamespace("Psr\Http\Server", [
PSR . 'http-server-middleware' . DIRECTORY_SEPARATOR . 'src',
PSR . 'http-server-handler' . DIRECTORY_SEPARATOR . 'src'
]);
function dd($var = 'nothing', endDump $end = endDump::EXIT_AND_STOP)
{
Common::dump($var, $end);
}
function dump($var = 'nothing', endDump $end = endDump::KEEP_WORKING)
{
Common::dump($var, $end);
}
$debug = true; // <------------------- make false in production
$myErrorHandler = new ErrorHandler($debug);
$myErrorHandler->register();
Reg::set('loader', $loader);
Reg::set('di', new DI()); // Initialize our Dependency Injector
Reg::set('container', new AutowireContainer());
Reg::set('error_handler', $myErrorHandler);
Reg::set('debug', $debug);
Console::setupConsoleVars(); // Copy CLI Args into $_GET
if (defined("IO_CORNERSTONE_PROJECT")) {
LoadAll::init(IO_CORNERSTONE_PROJECT); // Load Configs and Services
}
function isLive(): bool
{
if (Configure::has('IOcornerstone', 'live')) {
$live = Configure::get('IOcornerstone', 'live');
if ($live === null) {
$live = true;
}
$debugger = ($live) ? false : true;
Reg::get('error_handler')->resetDebugger($debugger);
} else {
echo "Warning: LIVE not Set in Config!!!";
$live = Reg::get('debug') ? false : true;
}
return (bool) $live;
}
if (Console::isConsole()) {
CliDefaults::init();
}
$kernel = new Kernel()->run();