Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2008, 01:46
pixel1
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Solicito su opinion con respecto a mi clase

Bueno, estos días he venido leyendo y solicitadno consejos respecto a temas de POO y MVC. Finalmente he empezado a desarrollar basado un poco en este tutorial: http://www.jourmoly.com.ar/introducc...primera-parte/.

Despues de mucho pensar y ponerme a trabajar un poco he generado esta clase, de la que me gustaria me dieran su opinion:

Código PHP:
class Mysql extends ModelBase
{

    
/*Método privado que me permite conocer la estructura de una tabla*/
    
private function describeTabla($tabla$excluye="")
    {
        
$consulta$this->db->prepare('DESCRIBE '.$tabla);
        
$consulta->execute();

        while(
$d=$consulta->fetch())
        {
            if( (
is_array($excluye) && !in_array($d[0],$excluye)) || (!is_array($excluye) && $excluye != $d[0]) )
                
$salida[]    =    $d[0];
        }
        return 
$salida;
    }

    
/*Metodo privado para poder redireccionar */
    
private function redirecciona($url="")
    {
        if(empty(
$url))
        {
            
//Separo la ruta de las variables
            
$str=explode("?",$_SERVER['HTTP_REFERER']);
            
//Pongo la accion en listar
            
$url=$str[0]."?accion=listar";
        }
        echo 
'<script languaje="javascript">location.href=\''.$url.'\';</script>';
    }

    
//Metodo publico para crear lista de datos
    
public function listado($tabla$where="")
    {
        
//realizamos la consulta de todos los items
        
$consulta $this->db->prepare('SELECT * FROM '.$tabla.$where);
        
$consulta->execute();
        
//devolvemos la coleccion para que la vista la presente.
        
return $consulta;
    }


    
//Método público que me permite cachar datos de un formulario y meterlos a una tabla

    
public function agregar($tabla,$data,$indice="",$valorIndice=0)
    {
        
$salida=$this->describeTabla($tabla);
        
$query            =    "";
        
//Formo el query de manera dinámica
        
foreach($salida as $clave)
         if(!empty(
$data[$clave]))
            
$query        .=    (($query=="")?"":",")."$clave='".$data[$clave]."'";
            
         
//Defino si actualizaré datos o insertaré    
         
if($valorIndice!=0)
            
$query        =    "UPDATE $tabla SET ".$query." WHERE ($indice='".$datos[$indice]."')";
         else
            
$query        =    "INSERT INTO $tabla SET $query";
            
        
//Preparo y ejecuto la consulta    
        
$consulta $this->db->prepare($query);            
        
$consulta->execute();
        
        
//Redirecciono
        
$this->redirecciona();
    }
    
    
    
//Mettodo publico para eliminar un registro
    
public function eliminar($tabla$indice$valor)
    {
        
//realizamos la consulta de todos los items
        
$consulta $this->db->prepare('DELETE FROM '.$tabla' WHERE '.$indice.'='.$valor);
        
$consulta->execute();
        
//devolvemos la coleccion para que la vista la presente.
        
$this->redirecciona();
    }    
    

Gracias