KumbiaPHP  beta2
Framework PHP
 Todo Estructuras de Datos Namespaces Archivos Funciones Variables Páginas
controller_console.php
Ir a la documentación de este archivo.
1 <?php
28 {
29 
37  public function create($params, $controller)
38  {
39  // nombre de archivo
40  $file = APP_PATH . 'controllers';
41 
42  // limpia el path de controller
43  $clean_path = trim($controller, '/');
44 
45  // obtiene el path
46  $path = explode('/', $clean_path);
47 
48  // obtiene el nombre de controlador
49  $controller_name = array_pop($path);
50 
51  // si se agrupa el controlador en un directorio
52  if (count($path)) {
53  $dir = implode('/', $path);
54  $file .= "/$dir";
55  if (!is_dir($file) && !FileUtil::mkdir($file)) {
56  throw new KumbiaException("No se ha logrado crear el directorio \"$file\"");
57  }
58  }
59  $file .= "/{$controller_name}_controller.php";
60 
61  // si no existe o se sobreescribe
62  if (!is_file($file) ||
63  Console::input("El controlador existe, ¿desea sobrescribirlo? (s/n): ", array('s', 'n')) == 's') {
64 
65  // nombre de clase
66  $class = Util::camelcase($controller_name);
67 
68  // codigo de controlador
69  ob_start();
70  include CORE_PATH . 'console/generators/controller.php';
71  $code = '<?php' . PHP_EOL . ob_get_clean();
72 
73  // genera el archivo
74  if (file_put_contents($file, $code)) {
75  echo "-> Creado controlador $controller_name en: $file" . PHP_EOL;
76  } else {
77  throw new KumbiaException("No se ha logrado crear el archivo \"$file\"");
78  }
79 
80  // directorio para vistas
81  $views_dir = APP_PATH . "views/$clean_path";
82 
83  //si el directorio no existe
84  if (!is_dir($views_dir)) {
85  if (FileUtil::mkdir($views_dir)) {
86  echo "-> Creado directorio para vistas: $views_dir" . PHP_EOL;
87  } else {
88  throw new KumbiaException("No se ha logrado crear el directorio \"$views_dir\"");
89  }
90  }
91  }
92  }
93 
101  public function delete($params, $controller)
102  {
103  // path limpio al controlador
104  $clean_path = trim($controller, '/');
105 
106  // nombre de archivo
107  $file = APP_PATH . "controllers/$clean_path";
108 
109  // si es un directorio
110  if (is_dir($file)) {
111  $success = FileUtil::rmdir($file);
112  } else {
113  // entonces es un archivo
114  $file = "{$file}_controller.php";
115  $success = unlink($file);
116  }
117 
118  // mensaje
119  if ($success) {
120  echo "-> Eliminado: $file" . PHP_EOL;
121  } else {
122  throw new KumbiaException("No se ha logrado eliminar \"$file\"");
123  }
124 
125  // directorio para vistas
126  $views_dir = APP_PATH . "views/$clean_path";
127 
128  // intenta eliminar el directorio de vistas
129  if (is_dir($views_dir)
130  && Console::input('¿Desea eliminar el directorio de vistas? (s/n): ', array('s', 'n')) == 's') {
131 
132  if (!FileUtil::rmdir($views_dir)) {
133  throw new KumbiaException("No se ha logrado eliminar \"$views_dir\"");
134  }
135 
136  echo "-> Eliminado: $views_dir" . PHP_EOL;
137  }
138  }
139 
140 }