Esempio n. 1
0
 /**
  *   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();
 }
Esempio n. 2
0
 public function testToGetFile()
 {
     \Bitphp\Core\Config::set('cache', false);
     $actual = MockCache::isCached(self::$file['params']);
     $expect = false;
     $this->assertEquals($expect, $actual);
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
 /**
  *  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;
 }
Esempio n. 5
0
 /**
  *   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;
 }
Esempio n. 6
0
 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;
 }
Esempio n. 7
0
 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);
     }
 }
Esempio n. 8
0
 /**
  * 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;
 }
Esempio n. 9
0
 /**
  *   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();
         }
     }
 }