| 
<?php declare(strict_types=1);
 /**
 * Luminova Framework
 *
 * @package Luminova
 * @author Ujah Chigozie Peter
 * @copyright (c) Nanoblock Technology Ltd
 * @license See LICENSE file
 */
 
 /**
 * Autoload register psr-4 classes
 */
 if(env('feature.app.autoload.psr4', false)){
 \Luminova\Library\Modules::register();
 }
 
 /**
 * Register services
 */
 if(env('feature.app.services', false)){
 factory('register');
 }
 
 /**
 * Initialize and register class modules and alias
 */
 if(
 env('feature.app.class.alias', false) &&
 !defined('INIT_DEV_MODULES') &&
 file_exists($modules = root('/app/Config/') . 'Modules.php')
 ) {
 define('INIT_DEV_MODULES', true);
 $config = require_once $modules;
 
 if(isset($config['alias'])){
 foreach ($config['alias'] as $alias => $namespace) {
 if (!class_alias($namespace, $alias)) {
 logger('warning', "Failed to create an alias [$alias] for class [$namespace]");
 }
 }
 }
 }
 
 /**
 * Initialize dev global functions
 */
 if(
 env('feature.app.dev.functions', false) &&
 !defined('INIT_DEV_FUNCTIONS') &&
 file_exists($global = root('/app/Utils/') . 'Global.php')
 ){
 define('INIT_DEV_FUNCTIONS', true);
 require_once $global;
 }
 |