Implantación de Aplicaciones Web
José Juan Sánchez Hernández
Curso 2023/2024
echo
var_dump
print_r
if
, else
, switch
)
for
,
while
, do-while
)
for
, while
, do-while
y
foreach
)
Para el desarrollo de las prácticas vamos a hacer uso de contenedores Docker y Docker Compose.
Para poder ejecutar contenedores Docker es necesario tener instalado Docker Community Edition (CE) y Docker Compose en nuestro equipo.
En la web oficial encontrará la información necesaria para realizar la instalación de Docker CE sobre Windows, macOS, Ubuntu, Debian, Fedora y CentOS.
Si queremos que los datos del contenedor sean persistentes tenemos
que crear un volumen donde vamos a indicar el
directorio de nuestra máquina local que queremos vincular con el
directorio /var/www/html
del contenedor Docker, que es el directorio que
utiliza Apache HTTP Server por
defecto para servir una página web.
El comando que podríamos usar para lanzar nuestro contenedor Docker es el siguiente:
docker run
es el comando que nos permite crear un
contenedor a partir de una imagen Docker.
El parámetro -d
nos permite ejecutar el contenedor
en modo detached, es decir, ejecutándose en segundo
plano.
El parámetro --rm
hace que cuando salgamos del
contenedor, éste se elimine y no ocupe espacio en nuestro
disco.
El parámetro --name
nos permite asignarle un nombre
a nuestro contenedor. Si no le asignamos un nombre Docker nos asignará un nombre
automáticamente.
El parámetro -p
nos permite mapear los puertos entre
nuestra máquina local y el contenedor. En este caso, estamos mapeando el
puerto 80
de nuestra máquina local con el puerto
80
del contenedor.
php:7.4-apache
es el nombre de la imagen y la
versión que vamos a utilizar para crear el contenedor. Si no se indica
lo contrario buscará las imágenes en el repositorio oficial Docker Hub. La imagen php:7.4-apache
contiene un servidor Apache HTTP y los módulos de
PHP 7.4 necesarios.
Si queremos crear un entorno de desarrollo con la pila LAMP completa podemos hacer uso del repositorio que se indica a continuación, que contiene la configuración necesaria para crear el entorno con Docker Compose.
El archivo docker-compose.yml
del repositorio contiene
la definición de tres servicios:
Para iniciar los servicios en su entorno de desarrollo, en primer lugar tendrá que clonar el repositorio en su equipo.
Una vez que haya clonado el repositorio en su equipo sólo tiene que acceder al directorio del repositorio.
cd lamp-docker
Para iniciar los servicios que se han definido en el archivo
docker-compose.yml
puede ejecutar el siguiente comando.
docker-compose up -d
-d
nos permite ejecutar los contenedores
en modo detached, es decir, ejecutándose en segundo plano.Para detener los servicios podemos hacerlo con el comando:
docker-compose down
Si quisiéramos eliminar el volumen que hemos definido para MySQL
podemos utilizar el parámetro -v
. De modo que el comando
que tendríamos que ejecutar sería el siguiente:
docker-compose down -v
PHP es un lenguaje de programación de uso general, especialmente adecuado para el desarrollo web.
El código PHP puede ser interpretado y ejecutado desde la interfaz de línea de comandos (CLI) o desde un servidor web que tenga implementado un intérprete PHP.
En la actualidad, PHP está siendo utilizado en gran cantidad de sitios web. Entre los sitios web más destacados podemos encontrar:
Sitios como Facebook o Wikipedia, hacen uso del lenguaje de programación Hack que es una extensión de PHP y se ejecuta en la máquina virtual HHVM (HipHop Virtual Machine).
Un framework es una estructura conceptual y tecnológica de asistencia definida, normalmente, con artefactos o módulos concretos de software, que puede servir de base para la organización y desarrollo de software. (Fuente: Wikipedia)
A la hora de desarrollar software es muy común hacer uso de frameworks ya que nos ayudarán a reducir a cantidad de código que tenemos que escribir y nos proporcionarán una gran cantidad de bibliotecas para realizar funciones de uso común.
Algunos de los frameworks PHP más utilizados actualmente son:
El código PHP se encierra entre las etiquetas de apertura y cierre:
<?php
y ?>
. Todo el código que se
encuentre estas dos etiquetas será interpretado como código PHP.
Ejemplo:
Es posible omitir la etiqueta de cierre ?>
cuando el
contenido del archivo sólo sea código PHP.
Ejemplo:
Todas las instrucciones en PHP terminan con el carácter punto y coma
(;
).
Ejemplo:
El único caso donde se puede omitir el carácter punto y coma
(;
) en la última instrucción de un bloque PHP, ya que la
etiqueta de cierre de un bloque PHP (?>
) implica un
punto y coma.
Ejemplo:
Podemos escribir comentarios de una sóla línea con: //
y
#
, y comentarios multilínea con /* ... */
.
Ejemplo:
<?php
// Esto es un comentario de una línea
echo "Frase 1";
# Esto es otro comentario de una línea
echo "Frase 2";
/* Este comentario
es un comentario de múltiples líneas */
echo "Frase 3";
?>
El uso de estas etiquetas de apertura y cierre, nos permite embeber
código PHP en documentos HTML. De modo que sólo el código que aparezca
entre las etiquetas <?php
y ?>
será
interpretado por el intérprete de PHP y el resto de etiquetas serán
ignoradas.
Ejemplo de código PHP embebido en un documento HTML:
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo</title>
</head>
<body>
<p>Contenido escrito en HTML</p>
<?php echo "Contenido escrito desde PHP"; ?>
</body>
</html>
Las variables en PHP se representan con el símbolo del dólar
($
) seguido por el nombre de la variable. El nombre de la
variable es sensible a mayúsculas y minúsculas.
Ejemplo:
Las constantes no pueden modificar su valor durante la ejecución del script. El nombre de la constante no tiene que ir precedido por el símbolo del dólar y es sensible a mayúsculas y minúsculas. Por convención, las constantes siempre se declaran en mayúsculas.
Ejemplo:
<?php
// Ejemplo de una constante numérica de tipo real
define("PI", 3.141592);
// Ejemplo de una constante de tipo string
define("CONSTANTE", "Hola mundo");
?>
echo
echo
es una construcción del lenguaje (no es una
función) que nos permite mostrar cadenas de texto y el contenido de las
variables.
Ejemplo:
<?php
echo "Esto es una cadena de texto.";
// Con echo también podemos mostrar el contenido de una variable
$numero = 10;
echo "El contenido de la variable es: $numero";
?>
Documentación
oficial de echo
.
var_dump
var_dump
es una función nos permite mostrar el contenido
de una variable. Esta función muestra el tipo de dato y el valor de la
variable.
Ejemplo:
<?php
$nombre = "Pepe";
$edad = 30;
$nota = 7.5;
var_dump($nombre);
// string(4) "Pepe"
var_dump($edad);
// int(30)
var_dump($nota);
// float(7.5)
?>
Documentación
oficial de la función var_dump
.
print_r
print_r
es una función que nos permite mostrar el
contenido de una variable de una forma legible.
Ejemplo:
<?php
$lista = array("Pepe", "María", "Juan");
print_r($lista);
//Array
//(
// [0] => Pepe
// [1] => María
// [2] => Juan
//)
?>
Documentación
oficial de la función print_r
.
1. Escribe un script PHP que muestre información sobre la configuración de PHP que hay en el servidor.
Notas:
2. Revise la documentación oficial de PHP para ver qué
información podemos obtener de la variable superglobal
$_SERVER
. Escribe un script haciendo uso de la variable
superglobal $_SERVER
que muestre lo
siguiente:
Notas:
3. Revise la documentación oficial para conocer todas las
variables superglobals que existen. Con ayuda de la función
print_r
muestra el contenido de cada una de las variables
superglobals.
Notas:
if
, else
, switch
)if
La estructura de control if
permite la ejecución
condicional de fragmentos de código PHP.
Sintaxis:
Ejemplo:
El siguiente ejemplo mostraría a es mayor que b
si la
variable $a
es mayor que $b
:
if - else
Sintaxis:
Ejemplo:
El siguiente ejemplo puede mostrar a es mayor que b
si
la variable $a
es mayor que $b
o
a NO es mayor que b
en caso contrario.
<?php
$a = 1;
$b = 5;
if ($a > $b) {
echo "a es mayor que b";
} else {
echo "a NO es mayor que b";
}
?>
elseif
/
else if
Sintaxis elseif
:
<?php
if (condición_1) {
bloque_de_sentencias_1
} elseif (condición_2) {
bloque_de_sentencias_2
} else {
bloque_de_sentencias_3
}
?>
Sintaxis else if
:
<?php
if (condición_1) {
bloque_de_sentencias_1
} else if (condición_2) {
bloque_de_sentencias_2
} else {
bloque_de_sentencias_3
}
?>
Ejemplo:
<?php
$a = 1;
$b = 1;
if ($a > $b) {
echo "a es mayor que b";
} elseif ($a == $b) {
echo "a es igual que b";
} else {
echo "a es menor que b";
}
?>
switch
Sintaxis:
<?php
switch ($variable) {
case valor1:
bloque_de_sentencias_1
break;
case valor2:
bloque_de_sentencias_2
break;
default:
bloque_de_sentencias_3
}
?>
Esta estructura de control es equivalente a:
<?php
if ($variable == valor1) {
bloque_de_sentencias_1
} elseif ($variable == valor2) {
bloque_de_sentencias_2
} else {
bloque_de_sentencias_3
}
?>
Ejemplo:
<?php
$numero = 2;
switch ($numero) {
case 1:
echo "La variable es igual a 1";
break;
case 2:
echo "La variable es igual a 2";
break;
default:
echo "La variable es un número distinto a 1 y 2";
}
?>
1. Escribe un script que simule el comportamiento de lanzar una moneda al aire y muestre una imagen con la cara o la cruz de la moneda.
Notas:
rand
.if
.else
.<img>
en HTML.2. Escribe un script PHP que genere un número aleatorio entre 1 y 10, simulando una nota numérica y muestre un mensaje indicando la calificación obtenida teniendo en cuenta los siguientes rangos:
Notas:
3. Escribe un script PHP que genere un número aleatorio entre 1 y 7, y muestre un mensaje indicando a qué día de la semana corresponde. Por ejemplo, 1 sería lunes, 2 martes, etc.
Notas:
4. Escribe un script PHP que realice la simulación de lanzar
un dado y muestre una imagen con un valor aleatorio enre 1 y 6. Resuelva
el ejercicio utilizando la estructura de control
if - else
.
Notas:
rand
.if
.else
.<img>
en HTML.5. Escribe un script PHP que realice la simulación de lanzar
un dado y muestre una imagen con un valor aleatorio entre 1 y 6.
Resuelva el ejercicio utilizando la estructura de control
switch
.
Notas:
rand
.switch
.<img>
en HTML.6. Escribe un script PHP que realice la simulación de lanzar
un dado y muestre una imagen con un valor aleatorio enre 1 y 6. Resuelva
el ejercicio sin utilizar las estructuras de control
if - else
y switch
.
7. Escribe un script PHP que realice la simulación de lanzar dos dados y muestre una imagen con los valores obtenidos en cada uno de los dados.
for
,
while
, do-while
)for
Sintaxis:
Ejemplo:
El siguiente ejemplo muestra los números del 1 al 10.
Ejemplo:
El siguiente ejemplo muestra los números del 10 al 1.
while
Sintaxis:
Ejemplo:
El siguiente ejemplo muestra los números del 1 al 10.
Ejemplo:
El siguiente ejemplo muestra los números del 10 al 1.
do - while
Ejemplo:
El siguiente ejemplo muestra los números del 1 al 10.
Ejemplo:
El siguiente ejemplo muestra los números del 10 al 1.
for
1. Escribe un script PHP que muestre los números del 1 al 10
en una tabla de una fila y 10 columnas. Utiliza un bucle
for
Notas:
2. Escribe un script PHP que muestre los números del 1 al 10
en una tabla de una columna y 10 filas. Utiliza un bucle
for
.
3. Escribe un script PHP que muestre en una tabla los números
pares que existen entre 1 y 100. Utiliza un bucle
for
.
4. Escribe un script PHP que muestre la tabla de multiplicar
de un número aleatorio. Utiliza un bucle for
5. Escribe un script PHP que muestre las tablas de
multiplicar del 1 al 10. Utiliza un bucle for
while
1. Escribe un script PHP que muestre los números del 1 al 10
en una tabla de una fila y 10 columnas. Utiliza un bucle
while
Notas:
do - while
1. Escribe un script PHP que muestre los números del 1 al 10
en una tabla de una fila y 10 columnas. Utiliza un bucle
while
Notas:
for
, while
, do-while
y
foreach
)Un array es una estructura de datos que nos permite almacenar varios valores en una única variable.
Para crear un array es suficiente con hacer:
Existen dos formas de inicializar los valores de un array indexado:
o también asignando los valores posición a posición:
Tenga en cuenta que los arrays siempre empiezan por la posición
0
.
print_r
count
for
$productos = array("Disco SSD", "Memoria RAM", "Monitor");
$numero_de_elementos = count($productos);
for ($i = 0; $i < $numero_de_elementos; $i++ ) {
echo $productos[$i];
echo "<br>";
}
Los arrays asociativos nos permiten usar claves en lugar de índices, para acceder a los valores del array.
Existen dos formas de inicializar los valores de un array asociativo:
o también asignando los valores a cada clave:
foreach
$edades = array("Juan" => "25", "María" => "28", "Paco" => "27");
foreach ($edades as $clave => $valor) {
echo "Clave: " . $clave . " - Valor: " . $valor;
echo "<br>";
}
1. Escribe un script PHP que realice las siguientes acciones:
2. Escribe un script PHP que realice las siguientes acciones:
3. Escribe un script PHP que realice las siguientes acciones:
4. Escribe un script PHP que realice las siguientes acciones:
Escribe un script PHP que sobre un array de temperaturas realice las siguientes operaciones:
El array de temperaturas lo vamos a generar con números aleatorios. El array será de 10 elementos y los valores aletorios generados estarán entre 1 y 30.
5. Resuelva el ejercicio utilizando bucles
for
.
Notas:
6. Resuelva el ejercicio utilizando bucles
while
.
Notas:
7. Resuelva el ejercicio utilizando bucles
do-while
.
Notas:
8. Escribe un script PHP que sobre un array de temperaturas realice las siguientes operaciones:
El array de temperaturas lo vamos a generar con números aleatorios. El número de elementos del array será especificado mediante un formulario y los valores aletorios generados estarán entre 1 y 30.
Notas:
9. Escribe un script PHP que permita ordenar el siguiente array asociativo:
Notas:
asort
.arsort
.ksort
.krsort
.10. Escribe un script PHP que muestre el siguiente array asociativo ordenado por la clave. El resultado deberá seguir el siguiente patrón:
La capital de ITALIA es ROMA
Tenga en cuenta que tendrá que utilizar una función para convertir las claves y los valores del array en mayúscula.
array("Italy"=>"Rome", "Luxembourg"=>"Luxembourg", "Belgium"=> "Brussels", "Denmark"=>"Copenhagen", "Finland"=>"Helsinki", "France" => "Paris", "Slovakia"=>"Bratislava", "Slovenia"=>"Ljubljana", "Germany" => "Berlin", "Greece" => "Athens", "Ireland"=>"Dublin", "Netherlands"=>"Amsterdam", "Portugal"=>"Lisbon", "Spain"=>"Madrid", "Sweden"=>"Stockholm", "United Kingdom"=>"London", "Cyprus"=>"Nicosia", "Lithuania"=>"Vilnius", "Czech Republic"=>"Prague", "Estonia"=>"Tallin", "Hungary"=>"Budapest", "Latvia"=>"Riga", "Malta"=>"Valetta", "Austria" => "Vienna", "Poland"=>"Warsaw");
Notas:
11. Escribe un script PHP que convierta el array del ejercicio anterior en un objeto JSON.
Notas:
1. Escribe una función que reciba un número como parámetro de entrada y que imprima su tabla de multiplicar.
Notas:
2. Escribe una función que reciba dos parámetros de entrada (inicio y fin) y que imprima las tablas de multiplicar entre esos dos números. Utilice la función del ejercicio anterior.
3. Escribe una función llamada inicializar_array
que reciba tres parámetros llamados numero_de_elementos
,
min
y max
, y que devuelva un array de números
enteros comprendidos entre los valores min
y
max
. El número de elementos que contiene el array será el
especificado en el parámetro de entrada
numero_de_elementos
Notas:
4. Escribe una función llamada calcular_media
que reciba un array como parámetro de entrada y que devuelva la media de
todos los valores que contiene.
5. Escribe una función llamada calcular_maximo
que reciba un array como parámetro de entrada y que devuelva cuál es el
máximo valor del array.
6. Escribe una función llamada calcular_minimo
que reciba un array como parámetro de entrada y que devuelva cuál es el
mínimo valor del array.
7. Escribe una función llamada imprimir_array
que reciba un array como parámetro de entrada y muestre su contenido en
una tabla con dos columnas. La primera columna mostrará la posición del
array y la segunda el valor que hay en esa posición.
8. Crea un archivo llamado funciones.php
que
contenga todas las funciones creadas en los ejercicios anteriores.
Escriba un script PHP que incluya el archivo funciones.php
y haga uso de cada una de ellas.
Notas:
1. Escribe un script que muestre un formulario con un campo
de texto y que permita enviarlo usando el método GET
. El
mismo script será capaz de recibir el dato enviado por el formulario y
lo mostrará.
Notas:
$_GET
.empty
.2. Escribe un script que muestre un formulario con un campo
de texto y que permita enviarlo usando el método POST
. El
mismo script será capaz de recibir el dato enviado por el formulario y
lo mostrará.
Notas:
$_POST
.empty
.3. Escribe un script que muestre un formulario que permita introducir un número y mostrar su tabla de multiplicar.
4. Escribe un script que mediante un formulario permita seleccionar el número de monedas que se desean lanzar (de 1 a 20) y el tipo de moneda (Dólar Estadounidense, Euro, Yen japonés, Libra esterlina, Franco suizo). El comportamiento tiene que ser similar al de la web random.org.
Notas:
rand
.if
.else
.for
.array
en PHP.<img>
de HTML.<select>
de HTML.1. Escribe un script PHP que mediante un formulario solamente permita subir archivos de imágenes.
Notas:
Recursos:
Persona
que cumpla los
siguientes requisitos:nombre
apellido1
apellido2
edad
get
y
set
para cada una de las propiedades.imprimir
que muestre todas las propiedades del
objeto.Una vez definida la clase, realice dos instancias y utilice todos los métodos que ha creado.
Recursos:
Notas:
mysqli
para acceder a bases de
datos.Notas:
mysqli
para acceder a bases de
datos.Notas:
mysqli
para acceder a bases de
datos.Notas:
mysqli
para acceder a bases de
datos.Notas:
Los recursos que vamos a utilizar en esta práctica son los siguientes:
Esta
página forma parte del curso
Implantación de Aplicaciones
Web de José Juan Sánchez
Hernández y su contenido se distribuye bajo una
licencia
Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0
Internacional.