buscar
Espanol flagIngles flag






Tiempo estimado de lectura 5:19 min. rellotge
Desarrollo de aplicaciones para la web mediante PHP: Más fácil imposible

Vamos a detallar el proceso de desarrollo de aplicaciones web mediante uno de los lenguajes de servidor con la curva de aprendizaje más suave de los que se llevan presentando en el mercado, nos referimos a PHP.

El lenguaje PHP, acrónimo de Personal Hipertext Procesor, es un lenguaje que inicialmente fue creado para uso personal de su autor, Rasmus Lerdorf. Fue en el año 1994 cuando vio la luz. Concebido inicialmente para Apache se considera como un módulo que se añade a dicho servidor web para que éste pueda en el lado del servidor interpretarlo y ejecutar el script antes de servir las páginas al cliente. Otros lenguajes de script del lado del servidor son, por ejemplo, JSP o ASP entre otros.

Entre las múltiples ventajas que nos presenta, cabe destacar el increíble soporte del que dispone, su facilidad de aprendizaje, sobre todo si el desarrollador ya posee experiencia en el desarrollo de aplicaciones cliente en lenguajes como C o C++, y el acceso a múltiples arquitecturas de bases de datos, véase Oracle, MySQL y un largo etcétera, o sistemas software tales como los orientados a la gestión de cuentas de usuario como, por ejemplo, acceso a cuentas alojadas en directorios LDAP, por citar uno de los más llamativos e interesantes. Además, PHP se distribuye libremente desde la página web del proyecto de mantenimiento y actualización constante del mismo, así como de adición de nuevas y múltiples funcionalidades gracias al apoyo de la comunidad de desarrolladores de software libre que trabajan activamente en la implementación de adaptadores o puentes con otras tecnologías, como por ejemplo con el proyecto Zend Framework en el que se trata de montar adaptadores de integración a PHP del sistema de gestión de búsqueda Lucene, uno de los mejores productos del proyecto Jakarta, desarrollado en Java, como si se tratase del consumo de un servicio web.

No es por tanto de extrañar que sea uno de los lenguajes más empleados en el desarrollo de aplicaciones para la web. Además, un porcentaje muy alto de los actuales gestores de contenidos y frameworks para el desarrollo de portales web, tales como PostNuke, Xaraya o PHPFusion , tienen su núcleo o core desarrollado en este lenguaje.

Así pues, nos resulta raro ver como la mayor parte de los códigos PHP a los que podemos tener acceso descargando los sources de las aplicaciones web más relevantes del mercado, en cuanto a desarrrollo de portales se refiere, poseen una estructura orientada al desarrollo de software basado en programación estructurada. Es por todos los que pertenecemos a este mundillo sabido que, actualmente, el paradigma que tiene una mayor robustez y que nos garantiza un software de calidad es, sin lugar a dudas, el basado en la programación orientada a objetos y suponemos que debido a la semejanza que posee PHP con lenguajes tales como C, en los que el concepto de clase no existe y que como mucho podríamos montar tipos de estructuras de almacenamiento de información con los que luego podíamos trabajar y referenciar como instancia gracias al typedef, los desarrolladores de C siguen la misma filosofía para con las aplicaciones web que implementan en PHP.

Vamos a introducir cómo podríamos adaptar nuestros diseños a la programación orientada a objetos en PHP. En primer lugar vamos a separar siguiendo la idea del patrón arquitectónico MVC Modelo-Vista-Controlador la lógica de control, la capa de acceso a datos y la generación de vistas. La capa de acceso a datos puede ser implementada, simplemente, mediante una clase en la que se almacene la información asociada al recurso que representa la base de datos sobre la que vamos a trabajar, independientemente de la tecnología sobre la que se monte. Esta clase actuará de fachada contra la base de datos cuando invoquemos una serie de operaciones sobre los registros almacenados en las tablas de estas, para lo cual, para cada tabla podemos definir la lógica de negocio asociada mediante una clase simple que contenga los atributos básicos que nos permitirían la representación del objeto correspondiente, así como la clase DAO que nos permitiría la funcionalidad de trabajar con la base de datos.
Finalmente, podríamos tener una o varias clases relativas a la vista que se encargará de lo relativo al envío de resultados de proceso al lado del cliente.
 
Vamos a verlo con un ejemplo: Supongamos que tenemos que desarrollar un sistema de autenticación de usuarios mediante usuario (login) y contraseña (password) para una aplicación web, como podemos ver por ejemplo en GMail. A priori, es posible que el cliente nos indique sobre qué tipo de arquitectura de base de datos vamos a lanzar nuestras queries, pero es posible que este no se de, o que en un futuro se cambie o se añada otro tipo arquitectura. Para paliar esto necesitaremos crear un diseño fácilmente adaptable en PHP independiente de la arquitectura.

Siguiendo la pseudo-metodología comentada con anterioridad vamos a desarrollar las clases PHP que se exponen a continuación:

- “AccesoDatos.class.php”: fachada para confrontar nuestras queries a la base de datos independientemente de la arquitectura, guardaremos datos relativos a esta para poder identificarla como host en el que se almacena o datos de acceso a la misma. Para asegurar esa independencia sería necesario el desarrollo de clases adaptadores que mediante un simple patrón estrategia implementarias el acceso de los datos en función del tipo de arquitectura a emplear. En este caso, podríamos llevar a cabo el desarrollo de dos adaptadores que podríamos enganchar a la clase anterior para Oracle y MySQL: “OracleDatos.class.php” y “MySQL.class.php” que implementasen la funcionalidad de conexión y ejecución de queries. Es importante recalcar que podríamos optar también, desde su incorporación en la versión 5 de PHP, por el uso de interfaces para agrupar funcionalidades que las clases implementasen, usando el mismo concepto de interfaz que proporciona Java.

- “Usuario.class.php”: clase que representa la lógica de negocio de representación de usuarios y que por lo menos debería tener el login y password de cada uno de ellos.

- “UsuarioDAO.class.php”: clase que representa el objeto que nos permite mediante el acceso al puntero almacenado en “AccesoDatos” obtener una instancia registrada en la base de datos de un registro de la tabla de us2uarios y mapearlo a una clase Usuario para poder trabajar con esta.

- “VistaAutenticacion.class.php”: clase que invocaremos en nuestro código HTML dentro de una reseña PHP delimitada por los caracteres < ? ?> para mostrar al cliente un procesado relativo a la acción de autenticación.

Por último, deberíamos desarrollar una clase que modelara la acción a ejecutar, en este caso el acceso a los datos de un usuario que se asemeje al que podríamos montar con los datos introducidos por el formulario de autenticación web. Así fácilmente, tendríamos desarrollado un simple formulario de autenticación básico para la web usando principios y patrones orientados al desarrollo de software mediante el paradigma de la orientación a objetos.

Concluimos proponiendo a los lectores de MundoInformática que, si sus diseños software PHP para la web se adaptan a la programación estructurada, migren estos al paradigma de la orientación a objetos, lo cual no supone ningún desgaste mental como hemos podido ver en el ejemplo anterior y así desarrollen sistemas web fácilmente mantenibles, adaptables y con un estilo de programación limpio y que asegura, ante todo, un producto resultante de gran calidad, todo esto de la mano del lenguaje número uno del mundo web: PHP.





1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Valora el reportaje)
Cargando ... Cargando ...



...por Ildefonso Montero ...por Ildefonso Montero


Patrocinador




Otros Reportajes:


Enlaces Patrocinados



Los más comentados:




Publicidad




Patrocinador




2 comentarios en Desarrollo de aplicaciones para la web mediante PHP: Más fácil imposible

  1. Hola,

    La verdad es que es muy bueno el reportaje, pero quisiera saber cuáles son los principales riesgos al estar desarrollando aplicaciones en la web orientado a objetos, datos y componentes.

  2. Hola, porfis dime el modelo vista controlador es igual al de tres capas, tengo que hecer mi proyecto con php 5 pero estoy proponiendo arquitectura de tres capas pero mi profe dice que no se puede y me pide que la cambie a otra arquitectura, podría ser mvc.

Publicidad



En colaboración:
Fox   National Geographic Channel   isyourhost   Foxlife   Guinness World Records   Blume   Editorial Planeta   Phaidon

| PortalMundos.com Internacional |
fltx Europa: España fltx América del Norte: México, US en español fltx América Central: Costa Rica, Cuba, El Salvador, Guatemala, Honduras, Nicaragua, Panamá, Puerto Rico, República Dominicana fltx América del Sur: Argentina, Bolivia, Chile, Colombia, Ecuador, Paraguay, Perú, Uruguay, Venezuela

PortalMundos Factory, S.L. | 2000 - 2009 | Hosting Profesional por isyourhost.com