PHP - Podria mejorar mi forma de programar???

   
Vista:

Podria mejorar mi forma de programar???

Publicado por Jose (1 intervención) el 04/04/2015 20:03:53
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-----------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!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.-------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
<?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-----------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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-------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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---------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$(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....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder