Cómo realizar los ejercicios

Esta lección contiene algunos consejos generales sobre la realización de los ejercicios.

Organización de los ejercicios

En el ejercicio Apache 5 de la página de ejercicios de Apache (1) se propone la creación de la carpeta "Mis documentos\IAW Nombre-de-alumno\PHP" para guardar en ella todos los programas del curso. En esta carpeta se propone crear las siguientes subcarpetas

Se recomienda organizar los ejercicios por carpetas, creando una carpeta para cada lección. Es muy importante que no haya espacios en blanco en los nombres de las carpetas para evitar problemas al ejecutar archivos desde Visual Studio Code. Por ejemplo, las carpetas se pueden llamar:

Utilizar plantillas

Para facilitar la realización de los ejercicios, al principio de cada página de ejercicios hay un enlace a un fichero zip que incluye unas plantillas de los ejercicios. Las plantillas incluyen todo el html que no cambia al actualizar la página, para que el alumno no pierda tiempo identificando y copiando y pegando código html de los ejemplos. Las plantillas también incluyen las etiquetas de apertura y cierre de los fragmentos php. En el fichero zip también se incluyen, en su caso, las imágenes utilizadas en los ejercicios.

Nota: Las plantillas se proporcionan para evitar al alumno el trabajo repetitivo, pero se aconseja hacer de vez en cuando algún ejercicio "desde cero", sin utilizar las plantillas.

Consultar los ejemplos de ejercicios

En los enunciados de los ejercicios se incluye normalmente un ejemplo de ejercicio de muestra y un icono de enlace al ejemplo Enlace a ejemplo, que permite abrir el ejercicio de muestra en una pestaña (o ventana) diferente.

Estos ejemplos se pueden utilizar para:

En los ejemplos de ejercicios, los nombres de los ficheros suelen coincidir con el nombre de la lección y el número del ejercicio. Por ejemplo, en los ejercicios de la página Primeras páginas los ficheros se llaman primeras-paginas-1.php, primeras-paginas-2.php, etc. Si un ejercicio consta de varias páginas php, se añade un número de orden. Por ejemplo, el tercer ejercicio de la página Primeras páginas consta de dos páginas que se llaman primeras-paginas-3-1.php y primeras-paginas-3-2.php.

Se recomienda utilizar los mismos nombres de archivos que los de los ejercicios de muestra, para no tener problemas en los enlaces al copiar porciones de código html de los ejercicios de muestra.

Consultar las soluciones

Las soluciones de los ejercicios se encuentran disponibles en la página de soluciones de los ejercicios.

En programación existen siempre muchas maneras de conseguir el mismo resultado, por lo que las soluciones propuestas no son más que una de las posibles soluciones.

Si no se sabe realizar un ejercicio, se recomienda consultar la solución para ver cómo se puede realizar, aunque no conviene hacerlo a la menor dificultad.

Aunque el alumno piense que ha realizado correctamente, se recomienda consultar las soluciones, para confirmar que se han tenido en cuenta todas las condiciones del problema y, en su caso, ver otra manera de resolverlo.

Reutilizar los ejercicios

Los ejercicios de cada lección suelen ser bastante similares y estar graduados de menor a mayor dificultad, por lo que se aconseja utilizar un ejercicio como base del siguiente (o en general, hacer un ejercicio a partir de un ejercicio similar ya realizado).

Si lo que se hace en un ejercicio se va a aprovechar en los siguientes ejercicios, merece la pena perder un poco de tiempo en cada ejercicio consiguiendo que:

En los apartados siguientes se comentan estos aspectos.

Incluso puede valer la pena comenzar un ejercicio a partir de la solución de un ejercicio anterior disponible en la página de soluciones de los ejercicios.

Formatear el código fuente PHP

Es conveniente adoptar un estilo definido en el código fuente de las páginas php. Eso facilita la legibilidad y la reutilización del código.

En la página de Guía de estilo para PHP se comentan algunos aspectos a seguir a la hora de escribir el código PHP. Las soluciones de los ejercicios disponibles en la página de soluciones de los ejercicios siguen esa guía de estilo.

Código HTML de los ejercicios

Este curso es un curso sobre PHP, no sobre HTML. Por tanto, no es necesario que el alumno sea capaz de escribir el código HTML de los ejercicios, pero sí debe ser capaz de escribir el código PHP que genera el código HTML de los ejercicios.

¿Cómo saber qué código HTML debe generarse en cada ejercicio?. En los enunciados de los ejercicios se incluye un ejemplo de ejercicio resuelto y un enlace al ejercicio resuelto, que se puede abrir en una pestaña (o ventana) diferente. Mostrando el código fuente de las páginas de los ejercicios, se puede ver el código HTML buscado. Ese código fuente HTML se puede copiar y pegar en las páginas PHP.

Validar páginas

Las páginas web (tanto las páginas html como las creadas en PHP) deberían ser páginas HTML 5 válidas.

Para validar tanto las páginas html como las creadas en PHP es necesario utilizar validadores de html. Uno de los más utilizados es el validador del W3C.

La extensión Web Developer de Firefox y Chrome permite utilizar fácilmente el validador del W3C. En la lección Otros programas se explica cómo instalar y utilizar Web Developer en Firefox.

Nota: En los exámenes no se requerirá que las páginas sean válidas, aunque sí se requerirá que se vean correctamente.

Formatear el código fuente HTML

Es conveniente que el código HTML (tanto de las páginas html como de las páginas generadas con PHP) esté convenientemente formateado, ya que eso permitirá encontrar fácilmente los posibles errores de la página. Para ello, el código PHP debe incluir en las instrucciones los saltos de línea y espacios necesarios.

Los ejemplos siguientes muestran dos fragmentos de PHP que generan el mismo código fuente incorrecto, sin formatear en el primer caso y formateado correctamente en el segundo. Es evidente en qué caso es más fácil encontrar el error ( no se cierran las filas de tabla con </tr>).

Desaconsejado
<?php
print "<table style=\"border: black 1px solid;\">";
for ($i=1; $i<=2; $i++) {
    print "<tr>";
    for ($j=1; $j<=2; $j++) {
        print "<td>$i-$j</td>";
    }
}
print "</table>";
?>
<table style="border: black 1px solid;"><tbody><tr><td>1-1</td><td>1-2</td><tr>
<td>2-1</td><td>2-2</td></tbody></table>
Desaconsejado
<?php
print "<table style=\"border: black 1px solid;\">\n";
for ($i=1; $i<=2; $i++) {
    print "  <tr>\n";
    for ($j=1; $j<=2; $j++) {
        print "    <td>$i-$j</td>\n";
    }
}
print "</table>\n";
?>
<table style="border: black 1px solid;">
  <tbody>
    <tr>
      <td>1-1</td>
      <td>1-2</td>
    <tr>
      <td>2-1</td>
      <td>2-2</td>
  </tbody>
</table>

Nota: El error en el código fuente anterior es que no se cierran las filas de tabla con </tr>.

No conozco ninguna herramienta que compruebe el formateo correcto del código fuente de una página, pero es fácil hacerlo visualmente, abriendo el código fuente de la página en Firefox. Estas son algunas recomendaciones:

Hojas de estilo de los ejercicios

Todos los ejercicios básicos de muestra utilizan la misma hoja de estilo que se llama mclibre-php-ejercicios.css.

Esta hoja de estilo se incluye generalmente en las plantillas de los ejercicios. En caso de que no esté incluida, se puede copiar de otro grupo de ejercicios.