Práctica 201. Creando contorno de desenvolvemento para PHP
Nesta práctica imos preparar un contorno de desenvolvemento para realizar aplicacións web con PHP.
Requisitos
- VirtualBox.
- Máquina virtual DAPW.
- Mozilla Firefox.
- Visual Studio Code.
- GitLab.
- Conexión a Internet.
Apartado 1
Comezaremos importando e configurando a nosa máquina virtual para as prácticas.
Realiza os seguintes pasos:
- Instala VirtualBox se non o tes instalado.
- Importa a OVA en VirtualBox.
- Arranca a máquina virtual e inicia sesión. Executa o comando
ip apara consultar a IP. Realiza unha captura desta IP.
Apartado 2
Unha vez configurada a máquina, procederemos a conectarnos por SSH. Isto poderiámolo facer desde unha terminal calquera ou empregando algún software específico. No noso caso, utilizaremos unha extensión de Visual Studio Code que facilita tanto o acceso á máquina como á edición de ficheiros.
Realiza os seguintes pasos:
- Instala en Visual Studio Code a extensión Remote - SSH.
- Preme F1 e selecciona a opción Remote - SSH → Add New SSH Host. Esta opción permitiranos engadir a nosa máquina a lista de máquinas a que nos podemos conectar.
- Na opción do comando SSH escribe o seguinte comando
ssh debian@192.168.56.56. Á hora de elixir o arquivo de configuración de SSH, elixe o do teu usuario. - Agora imos conectarnos á máquina. Pulsa F1 e selecciona Remote - SSH → Connect to Host. Selecciona a IP da máquina virtual. Abrirase unha nova ventá de VSC. Preme en
Continuare pon o contrasinal do usuariodebian. - Abre un novo terminal. Verás que o terminal (Terminal → Nuevo Terminal) se inicia na máquina virtual (fíxate no nome da máquina). Realiza unha captura.
Apartado 3
Xa temos preparada e configurada a nosa máquina para realizar a conexión remota. Agora comezaremos a tarefa propiamente dita. Para comezar, instalaremos PHP e o xestor de paquetes Composer.
Realiza os seguintes pasos:
- Instala PHP. Realiza unha captura da versión instalada.
- Instala Composer. Realiza unha captura da versión instalada.
Apartado 4
Neste punto crearemos unha conta en GitLab para almacenar os nosos repositorios. Crearemos un e clonarémolo á nosa máquina.
Realiza os seguintes pasos:
- Se non tes unha, crea unha conta en GitLab.
- Crea un novo repositorio chamado
dapw-201baleiro. Realiza unha captura da interface web co repositorio en GitLab. Ten en conta que aos repositorios en GitLab chámanlle proxectos. - Clona o repositorio na máquina virtual.
- Preme en Abrir Carpeta en Visual Studio Code. Selecciona o directorio onde clonaches o repositorio. Acepta todas as mensaxes. Realiza unha captura da interface de VSC onde se vexan os ficheiros do repositorio e a terminal.
- Crea un
README.md, crea uncommite realiza unpush.
Apartado 5
A continuación, comezaremos a traballar co xestor de paquetes Composer. Imos ver como se instalan paquetes e o xeito correcto de configurar o repositorio.
Realiza os seguintes pasos:
- Executa o comando
composer init. Ten en conta:- Nas preguntas que se piden datos, tan só tes que poñer o teu nome na pregunta do autor.
- Nas de contestar
yes/noselecciona todasnoagás na de que estás seguro de crear o ficheirocompose.json.
- Abre o ficheiro
composer.json. Realiza unha captura do contido deste. - Instala o paquete
fakerphp/faker. - Abre o ficheiro
composer.jsonecomposer.lock. Realiza capturas do contido destes ficheiros. - Realiza unha captura do contido do directorio
vendor.
Apartado 6
Non é recomendable subir ao repositorio o contido do directorio vendor. Este directorio xeralmente ocupa moito espazo e non nos interesa almacenalo no repositorio. Se queremos clonar o repositorio noutra localización, utilizando os ficheiros composer.json e composer.lock poderemos descargar de novo os paquetes necesarios para o funcionamento do proxecto.
Realiza os seguintes pasos:
- Crea o ficheiro
.gitignoree engade o directoriovendorpara que nos se inclúa no repositorio. Realiza unha captura do contido deste ficheiro. - Antes de realizar o seguinte paso, asegúrate na extensión de Git de VSC que non está incluíndo o directorio
vendor. - Realiza un
commite unpushpara subir o repositorio a GitLab. - Realiza unha captura do repositorio en GitLab que se vexa o contido deste.
Apartado 7
Agora comprobaremos como funciona o paquete instalado e a súa utilidade. En concreto, este paquete xera datos aleatorios. Isto é de gran utilidade para realizar probas. Por exemplo, o script de PHP que se mostra a continuación crea no directorio out un ficheiro CSV con datos xerados de nome, apelidos e datas de nacemento.
<?php
// Carga todas as librerías
require_once 'vendor/autoload.php';
// Localización española (opcional)
$faker = Faker\Factory::create('es_ES');
// Número de alumnos a xerar
$numAlumnos = 10;
// Directorio de saída
$directorio = __DIR__ . '/out';
// Comprobar se o directorio existe, se non, créao
if (!is_dir($directorio)) {
mkdir($directorio, 0755, true);
}
// Ruta completa do ficheiro CSV
$ficheiroCsv = $directorio . '/alumnos.csv';
// Abrimos o ficheiro CSV para escribir (modo 'w' sobrescribe se xa existe)
$ficheiro = fopen($ficheiroCsv, 'w');
// Escribimos a fila de cabeceira
fputcsv($ficheiro, ['Nome', 'Apelido', 'Data de Nacemento']);
for ($i = 0; $i < $numAlumnos; $i++) {
$nome = $faker->firstName;
$apelido = $faker->lastName;
$dataNacemento = $faker->date('Y-m-d', '2008-12-31'); // Máximo nacidos en 2008 (±16 anos)
// Escribimos a fila no CSV
fputcsv($ficheiro, [$nome, $apelido, $dataNacemento]);
}
// Pechamos o ficheiro
fclose($ficheiro);
echo "Ficheiro alumnos.csv creado correctamente en '$directorio' con $numAlumnos alumnos.\n";
Utilizarémolo e veremos como os resultados de execución de scripts tampouco é recomendable subilo aos repositorios.
Realiza os seguintes pasos:
- Crea o ficheiro
xerar_alumnos.phpco contido anterior. - Inclúe o directorio
outno.gitignore. Realiza capturas do contido de.gitignore. - Executa o script co seguinte comando
php xerar_alumnos.php. Realiza unha captura do ficheiro creado por este script. - Realiza un
commite unpushpara subir o repositorio a GitLab. - Realiza unha captura do repositorio en GitLab onde se vexa o contido deste.
Apartado 8
Por último, probaremos o servidor web de desenvolvemento que trae incluído o propio intérprete de PHP. Este serviranos para facer probas rápidas de aplicación web realizadas nesta linguaxe de programación.
Crea o arquivo index.php co seguinte contido:
<?php
session_start();
// Contador de visitas da sesión
if (!isset($_SESSION['visitas'])) {
$_SESSION['visitas'] = 1;
} else {
$_SESSION['visitas']++;
}
// Array de citas
$citas = [
"A vida é unha aventura, atrévete." => "Teresa de Calcuta",
"O éxito é ir de fracaso en fracaso sen perder o entusiasmo." => "Winston Churchill",
"Coñécete a ti mesmo." => "Sócrates",
"O saber non ocupa lugar." => "Refrán popular",
"Non deixes para mañá o que poidas facer hoxe." => "Benjamin Franklin"
];
// Escolle unha cita aleatoriamente
$cita = array_rand($citas);
$autor = $citas[$cita];
// Data e hora actual
$dataHora = date("d/m/Y H:i:s");
?>
<!DOCTYPE html>
<html lang="gl">
<head>
<meta charset="UTF-8">
<title>Benvido/a!</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #eef;
margin: 40px;
}
.cita {
font-style: italic;
color: #333;
}
.autor {
text-align: right;
margin-top: 5px;
font-weight: bold;
}
.contador {
margin-top: 20px;
font-size: 0.9em;
color: #666;
}
</style>
</head>
<body>
<h1>Benvido/a á miña páxina PHP!</h1>
<p>Data e hora actuais: <strong><?php echo $dataHora; ?></strong></p>
<div class="cita">
"<?php echo $cita; ?>"
<div class="autor">– <?php echo $autor; ?></div>
</div>
<div class="contador">
Número de visitas nesta sesión: <?php echo $_SESSION['visitas']; ?>
</div>
</body>
</html>
Realiza os seguintes pasos:
- Executa o seguinte comando:
php -S 0.0.0.0:8000. Este inicia o servidor PHP no porto8000. A IP que se indica, é a rede desde onde os equipos poden acceder a este servidor (0.0.0.0é para calquera rede, deste xeito tamén podemos acceder desde o anfitrión). - No teu equipo, abre un navegador e escribe a seguinte URL:
192.168.56.56:8000. Realiza capturas da web que se mostra. - Cerra o servidor pulsando Ctrl + C.
- Realiza un
commite unpushpara subir o repositorio a GitLab. - Realiza unha captura do repositorio en GitLab onde se vexa o contido deste.