Comunidad de diseño web y desarrollo en internet online

Buenas practicas de programacion en PHP

Citar            
MensajeEscrito el 28 Nov 2012 05:26 pm
Buenas soy nuevo en PHP, últimamente he desarrollado paginas hechas netamente con programación estructurada a lo dinosaurio, claro como para practicar, ya que soy nuevo en este lenguaje.
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...

Por talentocomputo

38 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Nov 2012 02:33 am
Actualmente puedes encontrar varios frameworks que te ayudarán a organizar y desarrollar de forma más rápida tus aplicación.
Todos estos frameworks ya traen clases que facilitan el uso de sesiones de usuarios, manejo de URLs amigables. Usan patrones y buenas prácticas de diseño de software.

En un post anterior, pedían recomendaciones de frameworks para PHP.
Entre algunos de ellos están CodeIgniter, CakePHP, Laravel, Zend Framework, Symfony.

CodeIgniter es el más sencillo para comenzar a trabajar con MVC y esta bastante documentado.

Por -george-

58 de clabLevel



 

Tartarus

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.