KumbiaPHP beta2-dev
Framework PHP en español
|
00001 <?php 00022 class ControllerConsole 00023 { 00031 public function create($params, $controller) 00032 { 00033 // nombre de archivo 00034 $file = APP_PATH . 'controllers'; 00035 00036 // limpia el path de controller 00037 $clean_path = trim($controller, '/'); 00038 00039 // obtiene el path 00040 $path = explode('/', $clean_path); 00041 00042 // obtiene el nombre de controlador 00043 $controller_name = array_pop($path); 00044 00045 // si se agrupa el controlador en un directorio 00046 if(count($path)) { 00047 $dir = implode('/', $path); 00048 $file .= "/$dir"; 00049 if(!is_dir($file) && !Util::mkpath($file)) { 00050 throw new KumbiaException("No se ha logrado crear el directorio \"$file\""); 00051 } 00052 } 00053 $file .= "/{$controller_name}_controller.php"; 00054 00055 // si no existe o se sobreescribe 00056 if(!is_file($file) || 00057 Console::input("El controlador existe, ¿desea sobrescribirlo? (s/n): ", array('s', 'n')) == 's') { 00058 00059 // nombre de clase 00060 $class = Util::camelcase($controller_name); 00061 00062 // codigo de controlador 00063 ob_start(); 00064 include CORE_PATH . 'console/generators/controller.php'; 00065 $code = '<?php' . PHP_EOL . ob_get_clean(); 00066 00067 // genera el archivo 00068 if(file_put_contents($file, $code)) { 00069 echo "-> Creado controlador $controller_name en: $file" . PHP_EOL; 00070 } else { 00071 throw new KumbiaException("No se ha logrado crear el archivo \"$file\""); 00072 } 00073 00074 // directorio para vistas 00075 $views_dir = APP_PATH . "views/$clean_path"; 00076 00077 //si el directorio no existe 00078 if(!is_dir($views_dir)) { 00079 if(Util::mkpath($views_dir)) { 00080 echo "-> Creado directorio para vistas: $views_dir" . PHP_EOL; 00081 } else { 00082 throw new KumbiaException("No se ha logrado crear el directorio \"$views_dir\""); 00083 } 00084 } 00085 } 00086 } 00087 00095 public function delete($params, $controller) 00096 { 00097 // path limpio al controlador 00098 $clean_path = trim($controller, '/'); 00099 00100 // nombre de archivo 00101 $file = APP_PATH . "controllers/$clean_path"; 00102 00103 // si es un directorio 00104 if(is_dir($file)) { 00105 $success = Util::removedir($file); 00106 } else { 00107 // entonces es un archivo 00108 $file = "{$file}_controller.php"; 00109 $success = unlink($file); 00110 } 00111 00112 // mensaje 00113 if($success) { 00114 echo "-> Eliminado: $file" . PHP_EOL; 00115 } else { 00116 throw new KumbiaException("No se ha logrado eliminar \"$file\""); 00117 } 00118 00119 // directorio para vistas 00120 $views_dir = APP_PATH . "views/$clean_path"; 00121 00122 // intenta eliminar el directorio de vistas 00123 if(is_dir($views_dir) 00124 && Console::input('¿Desea eliminar el directorio de vistas? (s/n): ', array('s', 'n')) == 's') { 00125 00126 if(!Util::removedir($views_dir)) { 00127 throw new KumbiaException("No se ha logrado eliminar \"$views_dir\""); 00128 } 00129 00130 echo "-> Eliminado: $views_dir" . PHP_EOL; 00131 } 00132 } 00133 }