Vistas en PHP con Yii y Smarty para Web Apps Sin Frameworks Frontend

Clase 19 de 35Curso de Desarrollo Web con PHP y Yii2

Resumen

¿Cómo trabajar con vistas en aplicaciones web usando PHP y Yii?

El desarrollo web con PHP en combinación con Yii te ofrece una poderosa capacidad para crear aplicaciones web robustas. Aquí te explicaremos en detalle cómo trabajar con vistas, específicamente centrándonos en un enfoque sin frameworks en el frontend.

¿Qué es una vista en Yii y cómo configurarla?

Una vista en Yii es un archivo que representa la capa de presentación de la aplicación. Estas vistas suelen estar escritas en HTML y pueden ser interpretadas por PHP. Cada controlador en Yii tiene su propio directorio dentro de la carpeta de vistas.

  • Organización de directorios: Se recomienda crear subcarpetas para cada controlador, como author y book, dentro de la carpeta views.
  • Archivo de vistas: Por ejemplo, para el controlador author, puedes crear un archivo detail.php, para presentar los detalles de un autor específico.

¿Cómo se renderiza una vista?

El método render en Yii es fundamental para mostrar las vistas. Este método proviene del objeto controlador (controller) y acepta dos parámetros: el nombre de la vista y un array de datos para pasar a la vista.

$this->render('detail', ['vistaAutor' => $author]);
  • Recibiendo datos: El método render permite pasar datos desde el controlador a la vista a través de un array asociativo. Las teclas del array son los nombres de las variables que podrás usar en la vista.

¿Cómo se integra PHP en las vistas?

Para presentar información dinámica, puedes incrustar PHP directamente en las vistas HTML. A pesar de que algunos desarrolladores tienen sus reservas sobre el uso extensivo de PHP en el frontend, es una práctica común en PHP clásico.

<h1>Detalle de autor</h1>
<?php echo $vistaAutor->toString(); ?>
<ol>
<?php foreach ($author->books as $book): ?>
    <li><?php echo $book->title; ?></li>
<?php endforeach; ?>
</ol>

¿Cómo manejar enlaces y URL dinámicas?

Para navegar de una vista a otra es fundamental construir enlaces de manera dinámica. Yii facilita esto utilizando la clase Html y el método a.

use yii\helpers\Html;

// Creación de un link
echo Html::a($book->title, ['book/detail', 'id' => $book->id]);

Este método a genera un enlace HTML (anchor) que apunta a la acción detail del controlador book con el ID del libro como parámetro.

¿Cómo mejorar la generación de plantillas con Smarty?

Aunque no se profundizó en el uso de Smarty, se mencionó que es posible utilizar motores de plantillas externos con Yii para mejorar la presentación y mantener la separación de la lógica de negocio y la presentación.

  • Smarty: Es un motor de plantillas de PHP que permite definir estructuras más limpias y menos verbosas. Puede ser una opción ideal para quienes desean un control más fino sobre el HTML que generan.

Yii junto con PHP te ofrece las herramientas para construir aplicaciones web completas, desde la estructura de carpetas hasta la generación dinámica de URL. Aunque el uso directo de PHP en vistas puede no ser del gusto de todos, su utilidad y capacidad para integrarse con herramientas como Smarty lo hacen una potencia a considerar en el desarrollo web. Continúa explorando y aprendiendo más sobre estas herramientas para maximizar tus desarrollos.