/**
  *	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 );*/
         }
     }
 }
Beispiel #2
0
 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);
 }