Cómo implementar un sistema de usuarios con sus peticiones GET, POST, PUT, DELETE en Vue.js y PHP.
Un sistema de usuarios es una funcionalidad común en muchas aplicaciones web, que permite registrar, autenticar, autorizar y gestionar a los usuarios que acceden a la aplicación. Un sistema de usuarios requiere de una base de datos para almacenar la información de los usuarios, y de una API para comunicarse con la base de datos desde el lado del cliente.
En este artículo, vamos a ver cómo implementar un sistema de usuarios con sus peticiones GET, POST, PUT, DELETE en Vue.js y PHP. Vue.js es un framework de JavaScript que nos permite crear interfaces de usuario reactivas y modulares, usando componentes y directivas. PHP es un lenguaje de programación que nos permite crear scripts del lado del servidor, que pueden interactuar con una base de datos MySQL y generar respuestas en formato JSON.
Lo primero que vamos a hacer es crear el proyecto de Vue.js usando el Vue CLI. Para ello, abrimos una terminal y ejecutamos el siguiente comando:
vue create vue-php-users
Este comando nos pedirá que elijamos algunas opciones de configuración, como el modo de instalación, las características que queremos incluir, el linter/formateador, etc. Podemos elegir las opciones que más nos convengan, o simplemente aceptar las opciones por defecto.
Una vez creado el proyecto, nos movemos al directorio del proyecto y ejecutamos el siguiente comando para iniciar el servidor de desarrollo:
cd vue-php-users
npm run serve
Este comando nos mostrará la dirección y el puerto donde se está ejecutando el servidor, que por defecto será http://localhost:8080. Si abrimos esta dirección en el navegador, veremos la página de bienvenida de Vue.js.
Lo siguiente que vamos a hacer es crear la base de datos y la tabla de usuarios que vamos a usar para el sistema de usuarios. Para ello, abrimos el panel de control de XAMPP y activamos los servicios de Apache y MySQL. Luego, abrimos el navegador y accedemos a http://localhost/phpmyadmin, que es la interfaz web para administrar las bases de datos de MySQL.
En la página de phpMyAdmin, hacemos clic en el botón Nueva, que se encuentra en el panel izquierdo, para crear una nueva base de datos. Le ponemos el nombre que queramos, por ejemplo, vue_php_users, y hacemos clic en el botón Crear.
Una vez creada la base de datos, hacemos clic en su nombre en el panel izquierdo, y luego en el botón SQL, que se encuentra en la parte superior, para ejecutar una consulta SQL. En el campo de texto que aparece, escribimos la siguiente consulta para crear la tabla de usuarios:
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
Esta consulta crea una tabla llamada users, con los siguientes campos:
Hacemos clic en el botón Continuar para ejecutar la consulta y crear la tabla de usuarios. Podemos ver la estructura y los datos de la tabla en el panel izquierdo, haciendo clic en su nombre.
Ahora que tenemos la base de datos y la tabla de usuarios, vamos a crear la API con PHP que nos permitirá comunicarnos con la base de datos desde el lado del cliente. La API tendrá los siguientes endpoints:
Para crear la API, vamos a usar el patrón de diseño MVC (Modelo-Vista-Controlador), que nos permite separar la lógica de la aplicación en tres capas:
Para implementar el patrón MVC, vamos a crear una estructura de directorios y archivos dentro de la carpeta del proyecto de Vue.js. Para ello, abrimos el explorador de archivos y creamos una nueva carpeta llamada backend, que contendrá el código de la API. Dentro de la carpeta backend, creamos las siguientes subcarpetas y archivos:
A continuación, vamos a ver el código de cada uno de estos archivos.
Este archivo contiene el código para conectar a la base de datos y obtener una instancia de la clase PDO, que nos permite ejecutar consultas SQL de forma segura y eficiente. El código es el siguiente:
<?php
class Database
{
// Propiedades para almacenar los datos de conexión
private $host = "localhost";
private $db_name = "vue_php_users";
private $username = "root";
private $password = "";
private $conn;
// Método para obtener la conexión
public function getConnection()
{
// Inicializar la conexión a null
$this->conn = null;
try {
// Crear una nueva instancia de PDO con los datos de conexión
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password); // Establecer el modo de error a excepción
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $exception) {
// Mostrar el mensaje de error si ocurre una excepción
echo "Connection error: " . $exception->getMessage();
}
// Devolver la conexión
return $this->conn;
}
}
Este archivo contiene el código del modelo de usuario, con los atributos, el constructor y los métodos para realizar las operaciones CRUD. El código es el siguiente:
Continuara en el siguiente articulo. 💕
Hola mi nombre es Eduardo Nava, Soy programador, diseñador web, móvil y de videojuegos.
El mundo digital avanza cada día.
Soy completamente autodidacta, por eso te ofrezco muchos de mis conocimientos para puedas aprender más fácilmente y más rápido de lo que hice y hago cada día.
Mi propósito es tratar mi pasión para enseñar tecnologías que avanzan cada día a todas esas personas, que quieran iniciarse en este mundo de forma actualizada.