Como se sabe los proyectos en symfony se componen de aplicaciones y estos a su vez de módulos los cuales representan una característica de la aplicación. Es por eso que nuestro siguiente paso es crear un módulo que se encargará de listar, ingresar nuevos datos, modificar y eliminar información.
Symfony es capaz de generar automáticamente un módulo para un determinado modelo que proporciona las características básicas de manipulación:
Figura 21. Crear Módulo
De la misma manera se generarán los módulos restantes (rubroespecial y estudianterubro) necesarios para el desarrollo de la aplicación
Para verificar que los formularios fueron creados de manera correcta abrir el navegador y poner la siguiente url: http://localhost/frontend_dev.php/estudiante se listará el registro de estudiantes almacenados en la base de datos. Para ingresar un nuevo registro dar click en New y se desplegará el formulario en el que podemos ingresar un nuevo estudiante, de la misma manera posee funciones para modificar y eliminar.
Figura 22. Pantallas Listar y Crear Estudiantes
Otras de las funciones que automáticamente provee la herramienta al momento de crear los formularios es la de validación de los datos ingresados, un ejemplo es ingresar una letra en un campo que solicita un número. En la siguiente imagen se ve como se produce un mensaje de error al momento de querer ingresar un dato incorrecto.
Figura 23. Validadores 2.4.2. Crear Vista
La Vista es con lo que interactúa el usuario final y esta debe servir únicamente para enviar y mostrar información, gracias a Symfony se pueden crear automáticamente varias vistas para las tareas más comunes dentro de un aplicación: listar, ingresar, modificar y eliminar. Estas se almacenan dentro del directorio templates del módulo al que pertenecen.
Un ejemplo del código que se implementa dentro de una vista enfocada a generar la listar los estudiantes es:
<table> <thead> <tr>
<th>Id estudiante</th> <th>Nombre</th> <th>Apellido</th> <th>Nivel</th>
<th>Estado</th> <th>Codigo beca</th> </tr>
</thead> <tbody>
<?php foreach ($testudiantes as $testudiante): ?>
<tr>
<td><a href="<?php echo
url_for('estudiante/show?id_estudiante='.$testudiant e->getIdEstudiante()) ?>"><?php echo $testudiante- >getIdEstudiante() ?></a></td>
<td><?php echo $testudiante->getNombreEst() ?></td>
<td><?php echo $testudiante->getApellidoEst() ?></td>
<td><?php echo $testudiante->getNivel() ?></td> <td><?php echo $testudiante->getEstadoEst() ?></td> <td><?php echo $testudiante->getCodBeca() ?></td> </tr> <?php endforeach; ?> </tbody> </table>
Como se puede observar el código implementado únicamente tiene la función de mostrar información, reduciendo considerablemente la responsabilidades y por ende las líneas de código. $testudiante es el objeto que hace llamadas a funciones definidas el Modelo de datos, por ejemplo si se quiere llamar a la función nombrecompleto() definida anteriormente se debería escribir algo así $testudiante-> nombrecompleto(). Donde $testudiante es un objeto de tipo Testudiante.
Los diferentes formularios que manejan la aplicación y la vista, tanto para el ingreso, modificación y eliminación no se definen como tradicionalmente se lo realizaba:
<form method=”post” action=”pagina.php”> <input type=”text” id=”nombre”>
<input type=”text” id=”cedula”>
<input type=”submit” Value=”guardar”> </form>
Con la ayuda de symfony los formularios son definidos mediante un framework completo que almacena la información en clases php los mismos que se explicaran más adelante. Reduciendo de esta manera el código implementado en la vista y promoviendo la reusabilidad. Las interfaces anteriormente creadas no cuentan con ningún estilo, ni encabezados ni pies de páginas. Es aquí donde se procede a trabajar con los estilos y las plantillas. La plantilla que se va a manejar dentro de la aplicación se escribe en el archivo layout.php, que se encuentra
en el directorio apps/frontend/templates y en la parte del contenido, es decir la única sección dinámica dentro de la página escribir <?php
echo $sf_content ?> es aquí donde se mostrara el código html
generado en otra acción.
Para configurar los estilos a utilizar en una aplicación simplemente se escribe en el archivo view.yml que se encuentra bajo el directorio
apps/frontend/config las siguientes líneas y este será referenciado por
un helper en la pagina html.
stylesheets: [main.css]
Si muchos archivos se definen, Symfony los incluye en el mismo orden que la definición:
stylesheets: [main.css, style.css]
Para referenciar a los estilos en la página html en este caso
layout.php se escribe el siguiente helper.
<?php include_stylesheets() ?>
Sin utilizar este helper normalmente en una página html se debería referenciar de la siguiente manera:
<link rel="stylesheet" type="text/css" media="screen" href="/css/main.css" />
<link rel="stylesheet" type="text/css" media="screen" href="/css/style.css" />
Se puede diferenciar claramente la disminución de líneas de comandos y por ende del esfuerzo por medio de la utilización del helper.
Una vez creado el layout y aplicado los estilos al mismo, las páginas pertenecientes al módulo se visualizarán de la siguiente manera: