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.... 
  
 


