| 
<?php
 use App\Core\Helpers\Classes\ValidationHelper;
 
 $root = dirname(__DIR__, 3);
 $slash = DIRECTORY_SEPARATOR;
 
 function url($url = null)
 {
 global $serverConfig;
 return "http://{$serverConfig['host']}:{$serverConfig['port']}/{$url}";
 }
 
 /**
 * Root directory path
 * @param null $path
 * @return string
 */
 function root_path($path = null)
 {
 global $root, $slash;
 return "{$root}{$slash}{$path}";
 }
 
 
 /**
 * Application directory path
 * @param null $path
 * @return string
 */
 function app_path($path = null)
 {
 global $root, $slash;
 return "{$root}{$slash}app{$slash}{$path}";
 }
 
 /**
 * Application view directory path
 * @param null $path
 * @return string
 */
 function view_path($path = null)
 {
 global $root, $slash;
 return "{$root}{$slash}resources{$slash}views{$slash}{$path}";
 }
 
 /**
 * Storage directory path
 * @param null $path
 * @return string
 */
 function storage_path($path = null)
 {
 global $root, $slash;
 return "{$root}{$slash}storage{$slash}{$path}";
 }
 
 /**
 * Controllers path
 * @param null $path
 * @return string
 */
 function controller_path($path = null)
 {
 global $root, $slash;
 return "{$root}{$slash}app{$slash}Http{$slash}Controllers{$slash}{$path}";
 }
 
 $loadedConfig = [];
 function config(string $file)
 {
 global $slash, $loadedConfig;
 if (array_key_exists($file, $loadedConfig)) {
 return $loadedConfig[$file];
 }
 
 $loaded = require root_path("config{$slash}{$file}.php");
 return $loadedConfig[$file] = $loaded;
 }
 
 /**
 * Input validation helper
 * @return ValidationHelper
 */
 function validator()
 {
 return new ValidationHelper();
 }
 |