/** * Comando de consola para crear un modelo * * @param array $params parametros nombrados de la consola * @param string $model modelo * @throw KumbiaException */ public function create($params, $model) { // nombre de archivo $file = APP_PATH . 'models'; // obtiene el path $path = explode('/', trim($model, '/')); // obtiene el nombre de modelo $model_name = array_pop($path); if (count($path)) { $dir = implode('/', $path); $file .= "/{$dir}"; if (!is_dir($file) && !FileUtil::mkdir($file)) { throw new KumbiaException("No se ha logrado crear el directorio \"{$file}\""); } } $file .= "/{$model_name}.php"; // si no existe o se sobreescribe if (!is_file($file) || Console::input("El modelo existe, �desea sobrescribirlo? (s/n): ", array('s', 'n')) == 's') { // nombre de clase $class = Util::camelcase($model_name); // codigo de modelo ob_start(); include CORE_PATH . 'console/generators/model.php'; $code = '<?php' . PHP_EOL . ob_get_clean(); // genera el archivo if (file_put_contents($file, $code)) { echo "-> Creado modelo {$model_name} en: {$file}" . PHP_EOL; } else { throw new KumbiaException("No se ha logrado crear el archivo \"{$file}\""); } } }
public function __construct($input = null, $output = null, $name = null) { $this->input = $input ?: Console::input(); $this->output = $output ?: Console::output(); if (!isset($this->name)) { if (empty($name)) { $classPath = explode('\\', get_class($this)); $name = preg_replace('/Command$/', '', end($classPath)); } $this->name = $name; } }
/** * Comando de consola para eliminar un controlador * * @param array $params parametros nombrados de la consola * @param string $controller controlador * @throw KumbiaException */ public function delete($params, $controller) { // path limpio al controlador $clean_path = trim($controller, '/'); // nombre de archivo $file = APP_PATH . "controllers/{$clean_path}"; // si es un directorio if (is_dir($file)) { $success = FileUtil::rmdir($file); } else { // entonces es un archivo $file = "{$file}_controller.php"; $success = unlink($file); } // mensaje if ($success) { echo "-> Eliminado: {$file}" . PHP_EOL; } else { throw new KumbiaException("No se ha logrado eliminar \"{$file}\""); } // directorio para vistas $views_dir = APP_PATH . "views/{$clean_path}"; // intenta eliminar el directorio de vistas if (is_dir($views_dir) && Console::input('¿Desea eliminar el directorio de vistas? (s/n): ', array('s', 'n')) == 's') { if (!FileUtil::rmdir($views_dir)) { throw new KumbiaException("No se ha logrado eliminar \"{$views_dir}\""); } echo "-> Eliminado: {$views_dir}" . PHP_EOL; } }