/** * Durante el constructor se registra el directorio * base de la aplicacion, la url base completa del la * aplicacion y la url solicitada, se carga el archivo * de configuracion y se registra el Error handler de * bitphp */ public function __construct() { Globals::registre(['base_path' => realpath(''), 'base_url' => $this->getBaseUrl(), 'request_uri' => $this->getRequestUri(), 'app_path' => realpath('') . '/app']); Config::load('app'); $errorHandler = new Error(); $errorHandler->registre(); }
public function testToGetFile() { \Bitphp\Core\Config::set('cache', false); $actual = MockCache::isCached(self::$file['params']); $expect = false; $this->assertEquals($expect, $actual); }
protected function upOrDown($subject, $action) { Config::load('migrations', true, false); $result = array('tables' => array(), 'queries' => array()); list($database, $table) = explode('/', $subject); $database = ucwords($database, '_'); $table = ucwords($table, '_'); $database = $database == 'All' ? '' : $database . '_Migration'; $table = $table == 'All' ? '' : $table . '_Seed.php'; $migrations_path = Globals::get('base_path') . "/app/migrations"; $seeds = File::explore("{$migrations_path}/{$database}/{$table}"); foreach ($seeds as $seed) { if (is_file($seed)) { //getting the class with namespace from path $class = str_replace($migrations_path, '', $seed); $class = dirname($class) . '\\' . basename($class, '.php'); $class = '\\App\\Migrations' . str_replace('/', '\\', $class); $seed = new $class(); if ($action == 'up') { $seed->setup(); $seed->up(); $result['queries'] = $seed->executed_queries; } else { $drop_db = $table == '' ? true : false; $seed->down($drop_db); $result['queries'] = $seed->executed_queries; } $result['tables'][] = $class; } } return $result; }
/** * Retorna el tiempo de cache en segundos * ya sea de la configuracion o el valor * por defecto * * @return integer */ protected static function cacheTime() { $cachetime = Config::param(self::$agent . '.cache.life'); if (null === $cachetime || !is_integer($cachetime)) { $cachetime = 300; } //senconds return $cachetime; }
/** * Detecta si la base de datos seleccionada es un * alias, si es así trata de obtener el nombre real * de la base para dicho alias, si no existe manda error * y retorna nulo, si no es un alias retorna el valor original * * @param string $alias Cadena a examinar * @return string nombre real de la base de datos */ public function realName($alias) { $is_alias = strpos($alias, 'alias.'); if (false === $is_alias) { return $alias; } $name = Config::param("database.{$alias}"); if (null === $name) { $message = "El '{$alias}' para la base de datos no esta definido. "; $message .= 'Antes de poder usarlo definelo en la configuración'; trigger_error($message); return null; } return $name; }
protected static function loadConfig() { self::$signature_key = Config::param('auth.token.signature'); if (null === self::$signature_key) { self::$signature_key = 'R4nd0mStr1ng_'; } self::$life = Config::param('auth.token.life'); if (null === self::$life) { self::$life = 300; } //seconds self::$algorithm = Config::param('auth.token.algorithm'); if (null === self::$algorithm) { self::$algorithm = 'HS256'; } self::$error = null; }
protected function render() { #parent::render(); foreach ($this->loaded as $file) { $source = file_get_contents($file); $this->source .= $this->compile($source); } $compress = Config::param('medusa.compress'); if (true === $compress) { $this->source = $this->compress($this->source); } }
/** * Crea un arrglo con las rutas de archivos a remover * escanea por defecto /app, /public e index.php * manda llamar la funcion identifySkipeds para descartar * los archivos omitidos desde la configuracion y tambien * agrega al escaneo los directorios y/o archivos * indicados en la configuracion * * @return array */ public static function scan() { $files = array(); $base = Globals::get('base_path'); Config::load('app'); $dirs = [$base . '/app', $base . '/public', $base . '/index.php']; $configured_dirs = Config::param('trash.scan'); if ($configured_dirs !== null && is_array($configured_dirs)) { $dirs = array_merge($dirs, $configured_dirs); } foreach ($dirs as $dir) { $files = array_merge($files, File::explore($dir)); } $files = self::indentifySkipeds($files); foreach ($files as $file) { # File::explore() devuelve en la lista tambien los # directorios escaneados, solo se requieren los archivos if (is_dir($file)) { $index = array_search($file, $files); unset($files[$index]); continue; } } return $files; }
/** * Se ejecuta cuando el script finaliza y verifica si hubo errores fatales * en caso de ser así carga la vista de error de bitphp * * @return void */ public function fatalErrorHandler() { $error = error_get_last(); if (null !== $error) { $this->encode(E_ERROR, $error['message'], $error['file'], $error['line']); } if (!empty($this->errors)) { $display = Config::param('errors.debug'); if (false !== $display) { $display = true; } if ($display) { $this->medusa->load('Error')->with(['errors' => $this->errors])->draw(); } else { header('HTTP/1.1 404 Not Found'); $this->medusa->load('NotFound')->draw(); } } }