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; }
/** * 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(); }
/** * 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; }