martes, 29 de agosto de 2023

PHP: Una arquitectura de aplicación personalizada

Intentando resolver el problema planteado en esta entrada, me había puesto a crear (con mucha ayuda) un sistema MVC personalizado para aplicaciones PHP tal como se muestra en esta otra entrada. Tambien consideré aprender a fondo Codeigniter e incluso Laravel. Después de darle vueltas al asunto me he propuesto crear una arquitectura parecida a la MVC pero un poco más sencilla, que permita implementar buenas practicas de programación. Las principales características de esta opción son las siguientes:

  • No usa POO. Me parece que con la programación estructurada se mantiene más sencillo el código y a efectos prácticos, para los proyectos que pienso manejar, funciona bien.
  • Se divide el proyecto en dos bloques: Del lado dl cliente y del lado del servidor.
  • Se elimina el controlador principal que se usa en la arquitectura MVC.
  • Básicamente solo quedan las vistas y los modelos, las cuales se encuentran en carpetas distintas pero tienen los mismos nombres. Los controladores individuales se ha fusionado con el modelo pero su presencia es casi inperceptible.
  • Siempre se invoca primero el modelo y luego la vista: siempre en ese orden.
Estructura de la carpeta

El siguiente código es mi versión personalizada de una aplicación hecha con la arquitectura personalizada que he planteado.

index.php

<a href="mo/estudiante_listar.php"> Listar </a>

mo/a_conectar.php

<?php 

if (!($link=mysqli_connect("localhost","root","9810402254"))) 
   
	{ 
      
	echo "Error conectando a la base de datos.";
  
      exit(); 
   
	} 

if (!mysqli_select_db($link,"colegio")) 
   
	{ 
      
	echo "Error seleccionando la base de datos.";
  
      exit(); 
  
	}
  
?>

mo/estudiante_listar.php

<?php 
$dato = array();

require("a_conectar.php");
$rs = mysqli_query($link," select * from estudiantes ");

while($f = mysqli_fetch_array($rs))
        {  
	$dato[] = $f;
	}

mysqli_free_result($rs);
mysqli_close($link); 

require("../vi/estudiante_listar.php");
?>

vi/estudiante_listar.php

<table>
<tr>
<td>ID</td>
<td>NOMBRES</td>
<td>APELLIDOS</td>
</tr>
 
<?php foreach ($dato as $d): ?>
   <tr>
   <td><?php echo $d['id'] ?></td>
   <td><?php echo $d['nombres'] ?></td>
   <td><?php echo $d['apellidos'] ?></td>
   </tr>
<?php endforeach; ?>

</table>

No hay comentarios.:

Publicar un comentario