KumbiaPHP beta2-dev
Framework PHP en español
controller_console.php
Ir a la documentación de este archivo.
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 }
 Todo Estructuras de Datos Namespaces Archivos Funciones Variables Enumeraciones