Skip to content

UD 3 POO en el lenguaje PHP

Desarrolla aplicaciones web identificando y aplicando mecanismos para separar el código de presentación de la lógica de negocio.

  • A Se han analizado y utilizado mecanismos y frameworks que permiten realizar esta separación y sus características principales.

Introducción

En la unidad anterior las características principales del lenguaje PHP, en este tema veremos los fundamentos de la POO en el lenguaje así cómo las estructuras de datos, clases y funciones que se usan.

Programación Orientada a Objetos (POO)

La Programación Orientada a Objetos (POO) en PHP permite estructurar el código de manera modular y reutilizable, enfocándose en crear clases y objetos que representen entidades y sus comportamientos. A continuación, se presentan los conceptos y características principales de la POO, junto con ejemplos en PHP.

Artículo Coders Free

En la notación UML, una clase se podría representar así:

1731219278424

A -Ventajas de separar la lógica de negocio de los aspectos de presentación de la aplicación

Separar la lógica de negocio de los aspectos de presentación en una aplicación es una práctica clave en el desarrollo de software, especialmente en aplicaciones de mediana y gran escala. Esta separación permite una estructura modular y escalable, lo cual ofrece diversas ventajas significativas:

1. Mantenibilidad

  • Separar la lógica de negocio de la presentación permite realizar cambios en una capa sin afectar la otra. Por ejemplo, un cambio en el diseño de la interfaz de usuario no afecta la lógica que procesa los datos, y viceversa.
  • Facilita la localización de errores y la modificación de funcionalidades, dado que cada capa tiene una responsabilidad específica y su código está centralizado.

2. Reutilización de Código

  • La lógica de negocio, al estar separada, puede ser reutilizada en distintas interfaces de presentación (web, móvil, APIs, etc.) sin necesidad de duplicar código.
  • Esto es particularmente útil en aplicaciones que tienen múltiples puntos de acceso, ya que el mismo conjunto de reglas de negocio puede ser aprovechado por diferentes presentaciones.

3. Escalabilidad

  • La arquitectura modular facilita la expansión de la aplicación. Si se requiere agregar una nueva funcionalidad o interfaz, es más sencillo de hacer sin afectar la lógica interna.
  • La lógica de negocio, al estar encapsulada y separada de la presentación, permite que cada capa evolucione de manera independiente, ayudando a que la aplicación crezca de forma controlada.

4. Mejora en la Prueba y Depuración

  • La lógica de negocio, al estar aislada, puede ser probada de manera independiente a la interfaz de usuario mediante pruebas unitarias. Esto permite verificar el correcto funcionamiento de las reglas de negocio sin necesidad de interactuar con la interfaz.
  • También facilita la implementación de pruebas automatizadas para validar el comportamiento de la lógica de negocio, lo que aumenta la confiabilidad del sistema.

5. Facilita el Trabajo en Equipo

  • La separación permite que los desarrolladores backend (lógica de negocio) y frontend (presentación) trabajen en paralelo sin interferir en el trabajo del otro.
  • También promueve la especialización, ya que los desarrolladores pueden enfocarse en mejorar cada capa según sus habilidades (optimización de bases de datos, UX/UI, etc.).

6. Flexibilidad en la Presentación

  • Al no estar acoplada a la lógica de negocio, la capa de presentación puede adaptarse a diferentes dispositivos o tecnologías (web, móvil, etc.) sin modificar el núcleo de la aplicación.
  • También permite actualizar el diseño de la interfaz sin tener que revisar el código que gestiona los datos y reglas del negocio.

7. Facilidad para Implementar APIs y Servicios Web

  • Con la lógica de negocio desacoplada, es sencillo exponerla a través de una API para que pueda ser consumida por otros sistemas o aplicaciones.
  • Esto ayuda a ampliar el alcance de la aplicación y facilita su integración con otros sistemas.

8. Uso de Patrones de Diseño y Buenas Prácticas

  • La separación de lógica y presentación permite implementar patrones de diseño como MVC (Modelo-Vista-Controlador), MVVM (Modelo-Vista-Modelo de Vista) y otros que mejoran la organización y claridad del código.
  • Estas arquitecturas promueven un código más estructurado y fácil de mantener, ya que cada componente tiene una responsabilidad clara.

Caso de uso:

1731137638453

En una tienda en línea, la lógica de negocio incluye el procesamiento de pedidos, cálculo de precios, aplicación de descuentos y control del inventario. Los aspectos de presentación son los formularios y botones que el usuario usa para navegar y realizar compras.

Con la separación de estas capas, podrías rediseñar el aspecto visual de la tienda o adaptarla a una aplicación móvil sin alterar la funcionalidad de negocio, lo que hace la aplicación más adaptable y fácil de expandir.

En conclusión, la separación de la lógica de negocio y la presentación en una aplicación facilita el desarrollo, mantenimiento, pruebas y evolución de la aplicación en el tiempo.

Actividad Entregable

Entregable

Tienes la info en la sección "Actividad entregable"

Referencias

PHP Documentation

Aitor Medrano

W3Schools

Artículo Coders Free