Beispiel #1
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;
 }
Beispiel #2
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;
 }