Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/11/2005, 09:33
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Si Cluster, gracias, tienes razón, ya sé que debería hacerlo con Objetos todo el tema, pero a lo que me refiero es si te parece una buena estructuración como lo estoy haciendo. Lo puse sin objetos, por que lo hice sobre la marcha, pero para aclararlo mejor, lo pongo aqui como objetos, haber que opinas de la estructuración:
Nota: Si pongo algunas cosas mal de sintaxis y demás, pasarlas por alto, solo me interesa que cogais la idea para decirme que os parece la Estructuración.


insertarClientePresentacion.php
Código:
     <? require('accionesClientesNegocio.php';
     if (!$accion = 'insertar'){?>
           <formulario>
     <?}else{
          $objNegocio = new accionesClientesNegocio();
          if ( $objNegocio ->insertarCliente($txtNombre, $txtApellidos, $txtNif) ){
               echo "cliente insertado";
          }else{
               echo "Algo ha fallado";
          }
     }?>

accionesClientesNegocio.php
Código:
      <?
      require('accesoBD.php');
      require('configuracion.php');
      function accionesClientesNegocio(){
          //Inicializaría variables y demás entre ellas:
         $objCN = new accesoBD($cadenaCN); //cadenaCN es de configuracion.php
      }
      function insertarCliente($nombreCliente, $apellidoCliente, $nifCliente){
            $sql = "insert into tclientes(nombre, apellidos, ...)values($nombreClie...)";

            if ( !$objCN->conectarBD() ){
                  die('Algo fallo en la conexión a la BD');
            }

             if ( $objCN->bdInsertaRegistro($sql) ){
                  return true;
             }else{
                  return false;
             }
      }
      ?>


accesoBD.php
Código:
     private $_cadenaCN;
     funcion accesoBD($cadenaCN){
         $this->_cadenaCN = $cadenaCN;
     }
     
     function conectarBD(){
         Si Conecta devuelve return true;
         Si no Conecta, pues: return false
     }
     
     function bdInsertaRegistro($sentenciaSQL){
          //Para resumir 
          si inserta bien el registro: return true;
          si no inserta bien: return false
     }

En la capa de presentación: Muestro el HTML y hago llamadas a la capa de negocio.

En la capa de negocio: Trato los parametros recogidos O a enviar, los modifico como los tenga que modificar y los envio a la capa de accesoBD(caso de un insert) o los devuelvo a la capa de presentación para mostrarlos(caso de un select)

Capa de accesoBD: Es una clase genérica para una base de datos, asi si por ejemplo ahora uso MySQL, se basaría en MySQL, bdInsertaRegistro, bdDevuelveRegistro, bdEjecutaProcedimiento, etc... de tal forma, que si mañana se usa SqlSever, con cambiar solo esta clase, el proyecto seguiriá funcionando.

Yo CREO que asi está más o menos con una buena estructuración y separación por capas, ¿No crees Cluster?, ¿Qué te parece como tengo mi estructuración?

Nuevamente, gracias.
__________________
Charlie.

Última edición por chcma; 25/11/2005 a las 09:39