Ahora me han encargado un web con inicio de sesiones, registro modificaciones de usuarios, transacciones de dinero, abonos (Ojo no es una web con un solo formulario de registro, sino asi como cristalab osea que permita visitar a personas no registradas y a las registradas les de un panel de control...ojala me deje entender), todo un rollo.
El detalle es que lo puedo hacer si programo como lo he estado haciendo pero no la quiero hacer tan facil, ya que esta aplicación debe ser segura y viable, y bueno me servirá como carta de presentacion para emigrar ya de mi trabajo >.<, asi que decidi hacerlo con POO JQuery y MySQL.
Por cierto ya conosco y me documente sobre la programacion orientada a objetos(Tengo experiencia programando en ASP y JSP), pero necesito de algun patron o modelo para seguir "las buenas practicas de la programacion y bla bla bla"... he intentado hacerlo en 3 capas como lo hacia cuadno programaba en ASP o JSP.
Lo separe en:
Capa Datos -> Acceso a la BD y algunas clases donde hay funciones que permiten registrar modificar eliminar etc una entidad(en este caso usuario),
Capa Negocio- > Sirve de puente entre la Capa datos y Capa Presentacion
Capa Presentacion -> bueno aqui van las paginas etc etc
Entidades -> ojo no es una capa sino unas clases donde defino las entidades con sus get y set, ojala me deje entender
Las capas y las entidades lo tengo organizadas en carpetas osea una carpeta:
Capa Negocio.
Capa Datos
Capa Presentacion
Entidades
Se ve ordenada pero aqui va el problema que tengo:
Estoy trabajando por ahora en localhost osea en mi pc como servidor.
Ahora cuando por ejemplo quiero entrar al index el url se ve asi:
http://localhost/MiWeb/_capa-presentacion/index.php
y creo que no deberia mostrarse esa carpeta "_capa-presentacion" si no tan solo decir:
http://localhost/MiWeb/index.php
Para evitarme eso (no se si hice lo correcto) decide trabajar con INCLUDE y REQUIRE
en la pagina index.php y en otras un ejemplo seria este:
Aqui una parte de código de mi Index.php
Código HTML :
<div id="header"> <div id="header-container"> <h1>Reyes Magos</h1> <div id="sesion"> <?php include("_capa-presentacion/formulario-sesion.php"); ?> </div><!-- End sesion --> </div><!-- End header-container --> </div><!--End header -->
Ahora en la formulario-sesion.php hay lo siguiente:
Código HTML :
<?php if($_SESSION['dni'] =="") { ?> <div id="inicio-sesion"> <form name="login" id="login" action="_capa-negocio/controlador-sesion.php" method="post"> DNI: <input name="dni" id="dni" type="text" /> Contraseña: <input name="contrasenia" id="contrasenia" type="text" /> <input name="enviar" id="enviar" type="submit" value="Iniciar Sesión" /> </form> </div><!-- End inicio-sesion --> <?php }else{ ?> <div id="cabecera-sesion"> <p class="text-style-05">Bienvenido a ReyesMagos.pe</p> <p style="color:#FFF;">Juan Eduardo Lopez Jorge</p> </div><!-- End cabecera-sesion --> <?php } ?>
En mi Capa de Negocios tengo lo siguiente:
bll_usuario.php
Código PHP :
<?php require_once("_capa-datos/dal_usuario.php"); require_once("_entidades/ent_usuario.php"); class BLL_Usuario { public function ListarTodo(){ $oDalUsuario = new DAL_Usuario(); return $oDalUsuario->ListarTodo(); } public function Guardar($usuario){ $oDalUsuario = new DAL_Usuario(); return $oDalUsuario->Guardar($usuario); } public function Loguearse($dni, $pass){ $oDalUsuario = new DAL_Usuario(); return $oDalUsuario->Loguearse($dni,$pass); } } ?>
controlador-sesion.php
Código PHP :
<?php require_once '_capa-negocio/bll_usuario.php'; session_start(); $dni_=$_POST['dni']; $contra_=$_POST['contrasenia']; if($dni_=="" or $contra_==""){ echo "No lleno los campos"; } elseif($dni_!="" and $contra_!="") { echo "dni ".$dni_." contrasenia ".$contra_; } ?>
¿Porque un controlador-sesion..php?
Bueno es porque deseo trabajar ajax usando la libreria de JQuery y es ahi donde metere el codigo o avisos para que me muestre si los datos son correctos o no si le permite loguearse etc etc.
Ahora debido a tantos Include y Require se me ha originado un mazamorra de enlaces rotos, originandome dolores de cabeza de como hacerlo.
Deseo saber si es correcta este tipo de patron o podria obtar por otro como MVC... lo malo que he buscado tutos y bueno todos son ejemplos donde no permite visitantes sino me obliga a logearme para luego entrar. y casi no hay una orientacion de como meterle el jquery ahi....es muy confuso para mi. ya que me habia acostrumbrado a este tipo de programacion en 3 capas, claro este tipo de programacion lo habia hecho para aplicaciones en escritorio, y paginas en ASP.net y JSP...claro estas no utlizaban Ajax...
Porfavor si alguien tiene un tuto o documento que me pueda ayudar les agradeceria mucho...