Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/04/2015, 11:15
Ing_jose
 
Fecha de Ingreso: septiembre-2010
Mensajes: 28
Antigüedad: 13 años, 7 meses
Puntos: 1
Podria mejorar el codigo???

Buenas amigos quiero poner esta informacion aqui, para los que esten aprendidendo a programar esto les servira.

Pero mi objetivo es recibir criticas, recomendaciones, me gustaria saber si podria mejorar de alguna manera mi manera de programar en PHP OOP.

Aqui les voy a dejar un codigo muy sencillo, la mayoria de los programas que he hecho en PHP los hago asi. Tengo una capa de presentacion al usuario que se llama "Vista" y tengo un elemento que me controla toda la capa de negocio claro dependiendo de lo grande que sea el sistema podria tener varios, a esto le llamo "Controlador".

El envio de informacion hacia mi controlador no lo hago a traves del metodo POST de mi formulario siempre me ha gustado hacerlo por Jquery a traves de AJAX, en lo personal me gusta ver que todo ocurre en el mismo formulario sin necesidad de que se refresque la pagina.

--------------------Aqui les dejo el modelo de mi vista-----------------
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
<script src="../Js/jquery-2.1.3.min.js"></script>
<script src="../Js/Prueba.js"></script>

</head>

<body>
<form name="formulario" id="formulario" method="">
<input type="hidden" name="Accion" id="Accion" value="agregarNombre">
<table width="200" border="1">
<tbody>
<tr>
<td>Nombre:</td>
<td><input type="text" name="Nombre" id="Nombre"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" name="Guardar" id="Guardar" value="Guardar"></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>

----------------------------------------------------------------------------

Aqui les dejo mi codigo de las clases que cree para este ejemplo

---------------------Clase de base de datos.-------------------------
<?php
class BaseDatos
{
function conectar()
{
$conexion=mysqli_connect("localhost","Prueba","Pru eba")or die("ERROR, no se puede conectar a la base de datos: ".mysqli_error());
mysqli_select_db($conexion,"Prueba");

return $conexion;
}

}
?>
-----------------------------------------------------------------------------------

------------------Clase orientada a la vista que se llama Prueba-----------------------
<?php
class Prueba
{
function agregarNombre($conexion,$Nombre)
{
$json['bandera']="";

mysqli_query($conexion,"BEGIN");
$sql="INSERT into Prueba(Nombre)values('".$Nombre."')";
$query=mysqli_query($conexion,$sql)or die("ERROR, no se pudo insertar en la base de datos: ".mysqli_error());

if($query==FALSE)
{
mysqli_query($conexion,"ROLLBACK");
$json['bandera']="0";
}
else
if($query!=FALSE)
{
mysqli_query($conexion,"COMMIT");
$json['bandera']="1";
}
echo json_encode($json);
}
}

?>
-------------------------------------------------------------------------------------------------

--------------------Aqui el codigo de mi controlador-------------------------------------
<?php

$accion=$_REQUEST["Accion"];
require("Clases/BaseDatos.class.php");
$objConexion = new BaseDatos;
$conexion=$objConexion->conectar();

switch($accion)
{
case 'agregarNombre':
require("Clases/Prueba.class.php");
$objPrueba = new Prueba;
$objPrueba->agregarNombre($conexion,trim($_POST["Nombre"]));
break;

default:
'No se encuentra en este controlador la accion: '.$accion.' revize este controlador Controlador.php';
break;

}



?>
--------------------------------------------------------------------------------------------------

--------Aqui les dejo el codigo del Jquery que utilizo para envio de datos---------
$(document).ready(function()
{

$("#Guardar").click(function()
{
var nombre=$("#Nombre").val();
var accion=$("#Accion").val();

$.ajax
({
url: '../Controlador.php',
type: 'POST',
data: {Accion:accion,Nombre:nombre},
dataType: 'json',

success:function(data)
{
var bandera=data.bandera;

if(bandera=="0")
{
alert("ERROR, al insertar el nombre");
}
else
if(bandera=="1")
{
alert("Datos registrados con exito !!!");
}
}
});

});
});
-----------------------------------------------------------------------------------------------

Por supuesto todo va en archivos separados, como les dije es un ejemplo muy sencillo donde inserto un nombre a la base de datos, la idea es que quiero conocer si puede mejorar aun mas mi manera de programar.

Muchas gracias....