Saltar al contenido principal

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


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 a para 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 - SSHAdd 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 - SSHConnect to Host. Selecciona a IP da máquina virtual. Abrirase unha nova ventá de VSC. Preme en Continuar e pon o contrasinal do usuario debian.
  • Abre un novo terminal. Verás que o terminal (TerminalNuevo 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-201 baleiro. 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 un commit e realiza un push.

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/no selecciona todas no agás na de que estás seguro de crear o ficheiro compose.json.
  • Abre o ficheiro composer.json. Realiza unha captura do contido deste.
  • Instala o paquete fakerphp/faker.
  • Abre o ficheiro composer.json e composer.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 .gitignore e engade o directorio vendor para 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 commit e un push para 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.

xerar_alumnos.php
<?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.php co contido anterior.
  • Inclúe o directorio out no .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 commit e un push para 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:

index.php
<?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 porto 8000. 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 commit e un push para subir o repositorio a GitLab.
  • Realiza unha captura do repositorio en GitLab onde se vexa o contido deste.