/** * Declara la extension del archivo, despues de su invocacion se puede usar * el metodo php() para acceder al molde de la clase */ function extender($subclase, $archivo) { if (!isset($this->molde_php)) { $this->subclase = $subclase; $this->archivo = $archivo; $extensiones = toba_info_editores::get_clases_extendidas_proyecto($this->proyecto); $nombre_clase = get_nombre_clase_extendida($this->clase, $this->proyecto, $extensiones); $this->molde_php = new toba_codigo_clase($this->subclase, $nombre_clase); //Dejo la marca if (file_exists($this->archivo_absoluto())) { /*$txt = "Reemplazar archivo: " . $this->archivo_relativo(); $ayuda = "Si no desea reemplazar el archivo, modifique el molde especificando otra carpeta de destino u otro prefijo para la generacion de clases."; $this->asistente->agregar_opcion_generacion( $this->get_id_opcion_archivo(), $txt, $ayuda );*/ } } }
static function get_runtime_clase_y_datos($id, $tipo = null, $usar_cache = false) { // Controla la integridad de la clave self::control_clave_valida($id); if (!isset($tipo)) { $tipo = toba_cargador::get_tipo($id); } // Cargo los metadatos if (toba::nucleo()->utilizar_metadatos_compilados($id['proyecto'])) { $datos = self::get_metadatos_compilados($id, $tipo == 'toba_item'); } else { $datos = toba_cargador::instancia()->get_metadatos_extendidos($id, $tipo); } //--- INSTANCIACION --- if ($tipo != 'toba_item') { //**** Creacion de OBJETOS $instancia_nro = 0; $clase = $tipo; if (!$usar_cache || !isset(self::$objetos_runtime_instanciados[$id['componente']])) { //Posee una subclase asociada? if ($datos['_info']['subclase']) { if (isset($datos['_info']['subclase_archivo'])) { //Puede estar en un autoload self::cargar_clase($datos, $id['proyecto']); } $clase = $datos['_info']['subclase']; } else { $clase = get_nombre_clase_extendida($clase, $id['proyecto'], toba::proyecto()->get_clases_extendidas()); } //Averiguo cuantas instancias previas de este componente fueron creadas if (!isset(self::$objetos_runtime_instanciados[$id['componente']])) { $instancia_nro = 0; self::$objetos_runtime_instanciados[$id['componente']] = array(); } else { $instancia_nro = count(self::$objetos_runtime_instanciados[$id['componente']]); } } $datos['_const_instancia_numero'] = $instancia_nro; } else { //**** Creacion de ITEMS $clase = "toba_solicitud_" . $datos['basica']['item_solic_tipo']; } return array($tipo, $clase, $datos); }