. */ use DI\ContainerBuilder; use Dotenv\Dotenv; use SP\Core\Definitions\CoreDefinitions; use SP\Core\Definitions\DomainDefinitions; use SP\Infrastructure\File\FileSystem; use function SP\getFromEnv; use function SP\initModule; use function SP\processException; if (!defined('APP_ROOT')) { define('APP_ROOT', realpath(__DIR__ . DIRECTORY_SEPARATOR . '..')); } require 'BaseFunctions.php'; require FileSystem::buildPath(APP_ROOT, 'vendor', 'autoload.php'); define('APP_PATH', FileSystem::buildPath(APP_ROOT, 'app')); $dotenv = Dotenv::createImmutable(APP_ROOT); $dotenv->load(); defined('APP_MODULE') || define('APP_MODULE', 'web'); define('DEBUG', getFromEnv('DEBUG', false)); try { $moduleDefinitions = initModule(APP_MODULE); $containerBuilder = new ContainerBuilder(); if (!DEBUG) { $cachePath = getFromEnv('CACHE_PATH', FileSystem::buildPath(APP_PATH, 'cache')); $containerBuilder->enableCompilation($cachePath); $containerBuilder->writeProxiesToFile(true, FileSystem::buildPath($cachePath, 'proxies')); } return $containerBuilder ->addDefinitions( CoreDefinitions::getDefinitions(APP_ROOT, APP_MODULE), DomainDefinitions::getDefinitions(), $moduleDefinitions ) ->build(); } catch (Exception $e) { processException($e); die($e->getMessage()); }