Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Opinion sobre estas pequeñas clases que hice.

Estas en el tema de Opinion sobre estas pequeñas clases que hice. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas noches de nuevo. Acabo de finalizar una pequeña clase para acceder a una base de datos MySQL, para poder programar por capas. A continuación, ...
  #1 (permalink)  
Antiguo 14/03/2006, 22:41
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Opinion sobre estas pequeñas clases que hice.

Buenas noches de nuevo.

Acabo de finalizar una pequeña clase para acceder a una base de datos MySQL, para poder programar por capas. A continuación, voy a mostrar la clase de AccesoBD, capaNegocio y capaPresentacion.

Y bueno, espero que me puedan dar opiniones sobre que sintaxis tengo mal, por ejemplo donde debería poner excepciones, donde no, y si está bien el metodo CierraBD de la clase accesoBD_5.

Creo que también le vendría bien a la gente ver esto, ya que más de uno verá un poco más claro como es el tema de programación por capas. De paso, espero que a alguien le pueda ser util esta pequeña clase.

Bueno, gracias y espero sus opiniones y comentarios.

Saludos.


AccesoBD_5
Código:
<?
class AccesoBD_5{
	//Variables Publicas
	public $errorBD;

	//Variables Privadas
	private $_servidor, $_usuario, $_clave, $_basedatos;
	private $objMySQL;
	
	
	function __construct($servidor, $usuario, $clave, $basedatos){
		$this->_servidor = $servidor;
		$this->_usuario = $usuario;
		$this->_clave = $clave;
		$this->_basedatos = $basedatos;
	}
	
	
	//DESCRIPCIÓN: Función que nos indica si la conexión a la BD ha sido correcta.
	public function ConectarBD(){
		global $objMySQL;
		$objMySQL = new mysqli($this->_servidor, $this->_usuario, $this->_clave, $this->_basedatos);
		if (mysqli_connect_errno()){
			$this->errorBD="<b>AccesoBD->ConectarBD: </b>".mysqli_connect_error();
			return false;
		}
		return true;
	}	
	
	
	
	
	//DESCRIPCIÓN: Función que nos devuelve True si existe un registro.
	public function DevuelveScalar($sql){
		$contador=0;
		if ($sentenciaSQL = $objMySQL->query($sql)){
			while ($fila = $sentenciaSQL->fetch_assoc()) {
				$contador=1;
			}
			if ($contador == 1){
				return true;
			}else{
				return false;
			}
		}
	}
	
	
	//DESCRIPCIÓN: Devuelve Registros
	public function DevuelveSql(&$rs, $sql){
		global $objMySQL;
		$indice=0;
		if (!$sentenciaSQL = $objMySQL->query($sql)){
			$this->errorBD = "<b>AccesoBD->DevuelveSql: </b>".$objMySQL->error;
			return false;
		}
		
		while ($fila = $sentenciaSQL->fetch_assoc()) {
			$filas[$indice]=$fila;
			$indice++;
		}
		$rs = $filas;
		return true;
	}
	
	
	//DESCRIPCION: Escribe un registro.
	public function EscribeBD($camposNombres, $camposValores, $tablaNombre){
		global $objMySQL;
		$sqlInsertar = 'insert into '. $tablaNombre . '('. $camposNombres .') values(' . $camposValores .')';
		
		if(!$objMySQL->query($sqlInsertar)){
			$this->errorBD = "<b>AccesoBD->EscribeBD: </b>".$objMySQL->error;
			return false;
		}
		return true;
	}
	
	
	
	//
	//DESCRIPCION: Funcion para actuañizar registros. $camposNombreValor recibe un Array Asociativa 
    //			   con la estructura Campo-Valor.
	//
	public function ActualizaBD($camposNombreValor, $condicion='', $tablaNombre){
		global $objMySQL;
		$CampoValor='';
		reset($camposNombreValor);
		while (list($campo, $valor) = each($camposNombreValor)){
			$CampoValor=$CampoValor . "," . $campo ."=" . $valor;
		}
		
		//quito la primera coma.
		$tamanioCadena = strlen($CampoValor);
		$CampoValor = substr($CampoValor, 1, $tamanioCadena);
	
		if ($condicion == ''){
			$sqlActualizar = 'update '. $tablaNombre . ' set ' . $CampoValor;
		}else{
			$sqlActualizar = 'update '. $tablaNombre . ' set ' . $CampoValor . " where ". $condicion;
		}

		if(!$objMySQL->query($sqlActualizar)){
			$this->errorBD = "<b>AccesoBD->AztualizaBD: </b>".$objMySQL->error;
			return false;
		}

		
	}
	
	
	
	
	//
	//DESCRIPCION: Elimina registros.
	//
	public function EliminaBD($condicion='', $tablaNombre){
		global $objMySQL;
		if($condicion != ''){
			$sqlEliminar = 'delete from '. $tablaNombre . ' where ' . $condicion ;
		}else{
			$sqlEliminar = 'delete from '. $tablaNombre;
		}
		if(!$objMySQL->query($sqlEliminar)){
			$this->errorBD = "<b>AccesoBD->EliminaBD: </b>".$objMySQL->error;
			return false;
		}
		return true;
	}
	
	
	
	public function CierraBD(){
		global $objMySQL;
		if(!$objMySQL->close()){
			$this->errorBD = "<b>AccesoBD->CierraBD: </b>".$objMySQL->error;
			return false;
		}
		return true;
	}

}
?>


capaNegocio
Código:
<? 
require('configuracion.php');
require('accesoBD_5.php');

class testNegocio{
	private $objBD;
	public $errorNegocio;
	
	function __construct(){
		global $objBD;
		try{
			$objBD = new accesoBD_5(SERVIDOR, USUARIO, CLAVE, BASEDATOS);	
		}catch (Exception $ex){
			die($ex);
		}
	}
	
	
	public function InsertarTexto($txtTexto){
		global $objBD;
		if(!$objBD->ConectarBD()){
			$this->errorNegocio = "Error Conexion: ".$objBD->errorBD;
			return false;
		}
		if(!$objBD->EscribeBD('texto', ' "'.$txtTexto.'" ', 'tpresentacion')){
			$this->errorNegocio = "Error Escritura: ".$objBD->errorBD;
			return false;
		}
		return true;
	}
	
	
	public function EliminarTexto($txtCondicion){
		global $objBD;
		if(!$objBD->ConectarBD()){
			$this->errorNegocio = "Error Conexion: ".$objBD->errorBD;
			return false;
		}
		
		if ($txtCondicion == ''){
			if(!$objBD->EliminaBD('', 'tpresentacion')){
				$this->errorNegocio = "Error Escritura: ".$objBD->errorBD;
				return false;
			}
		}else{
			if(!$objBD->EliminaBD('texto= "'.$txtCondicion.'" ', 'tpresentacion')){
				$this->errorNegocio = "Error Escritura: ".$objBD->errorBD;
				return false;
			}
		}
		
		
		if(!$objBD->CierraBD()){
			$this->errorNegocio = "Error Conexion: ".$objBD->errorBD;
			return false;
		}

		return true;
	}
	
	
	public function MuestraTextos(){
		global $objBD;
		if(!$objBD->ConectarBD()){
			$this->errorNegocio = "Error Conexion: ".$objBD->errorBD;
			return false;
		}
		
		if (!$objBD->DevuelveSql($resultado, 'select * from tpresentacion')){
			die($objBD->errorBD);		
		}

		if(!$objBD->CierraBD()){
			$this->errorNegocio = "Error Conexion: ".$objBD->errorBD;
			return false;
		}	
		
		foreach($resultado as $fila){
			echo $fila['texto'].'</br>';
		}
	}
	
	
	public function ModificaTexto($campoTexto, $condicion){
		global $objBD;
		if(!$objBD->ConectarBD()){
			$this->errorNegocio = "Error Conexion: ".$objBD->errorBD;
			return false;
		}
		
		$misCampos = array('texto'=>'"' . $campoTexto . '"');		
		if(!$objBD->ActualizaBD($misCampos, $condicion, 'tpresentacion')){
			$this->errorNegocio = "Error Escritura: ".$objBD->errorBD;
			return false;
		}
		
		return true;
	}
}
?>


capaPresentacion
Código:
<? require('testNegocio.php');

$objNegocio = new testNegocio();

/*
$objNegocio->EliminarTexto('Soy Nahir Florencia Benítez');
$objNegocio->InsertarTexto('Soy Nahir Florencia Benítez');
*/

//$condicion = 'texto = "Soy Nahir Florencia Benítez"';
//$objNegocio->ModificaTexto('Soy Nanu', $condicion);


$objNegocio->MuestraTextos();
?>
__________________
Charlie.
  #2 (permalink)  
Antiguo 19/03/2006, 00:33
pablasso
Invitado
 
Mensajes: n/a
Puntos:
no es mucho opinar sobre tus clases, pero te recomendaria que le heches un ojo al nuevo soporte para pdo en php 5.1
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:58.