/** * Extiende las clases de componentes de toba o de las componentes extendidas del * proyecto. * * @param toba_modelo_proyecto $proyecto * @param string $path * @param string $tipo valores posibles: 'toba' | 'proyecto' */ static function extender_componentes(toba_modelo_proyecto $proyecto, $path, $tipo = 'toba') { $id_proyecto = $proyecto->get_id(); if (is_dir($path)) { toba_manejador_archivos::eliminar_directorio($path); } toba_manejador_archivos::crear_arbol_directorios($path); $componentes = self::get_componentes_toba($proyecto); if ($tipo == 'toba') { $prefijo = ''; $clase_a_extender = 'toba_%comp%'; } else { $prefijo = 'pers_'; $clase_a_extender = $id_proyecto . '_%comp%'; } foreach ($componentes as $componente) { $nombre_clase = $id_proyecto . '_' . $prefijo . $componente; $clase = new toba_codigo_clase($nombre_clase, str_replace('%comp%', $componente, $clase_a_extender)); $clase->guardar($path . '/' . $nombre_clase . '.php'); } }
/** * Crea un caso de test de personalización a partir de la salida de compara_foto_schema */ function opcion__crear_caso_test() { $nombre = $this->consola->dialogo_ingresar_texto('Ingrese el nombre del caso de test'); $archivo_fuente = self::get_path_comparacion(); $array = $this->salida_como_array($archivo_fuente); $clase = new toba_codigo_clase("{$nombre}", "toba_pers_caso_test"); $prop = new toba_codigo_propiedad_php('$sql', 'protected', '', $array); $metodo = new toba_codigo_metodo_php('get_descripcion', array(), array('Descripción del caso de test')); $metodo->set_contenido("return '';"); $clase->agregar($prop); $clase->agregar($metodo); $path = toba_dir() . "/proyectos/toba_testing/personalizacion/tests/{$nombre}.php"; $clase->guardar($path); $this->consola->mensaje("El caso de test se guardó en {$path}"); }