Iniciadores Rápidos

¿Cómo construir un backend para Yii 2?

41min

Introducción

En este tutorial, aprenderás cómo construir un backend para Yii 2 utilizando Back4app.

Yii 2 es un popular framework PHP de código abierto que te ayuda a crear aplicaciones web seguras y eficientes.

Al integrar el framework Yii con Back4app, puedes aprovechar potentes características como la gestión de bases de datos, funciones en la nube, APIs REST y GraphQL, autenticación de usuarios y consultas en tiempo real, todo mientras aceleras tu proceso de desarrollo de backend.

Verás cómo aprovechar el entorno de Back4app para reducir la configuración manual del servidor, permitiéndote concentrarte en escribir tu código Yii 2.

Siguiendo estos pasos, obtendrás experiencia práctica con funcionalidades esenciales, incluyendo controles de seguridad robustos (ACLs, CLPs), programación de tareas recurrentes y configuración de integraciones externas a través de webhooks.

Al final de este tutorial, tendrás una estructura de backend sólida para tu proyecto Yii 2, lista para escalar a producción o mejorar con lógica de negocio personalizada.

También estarás bien preparado para integrar APIs de terceros o construir nuevas características en tus aplicaciones web.

Requisitos previos

Para completar este tutorial, necesitarás:

  • Una cuenta de Back4app y un nuevo proyecto de Back4app Comenzando con Back4app. Si no tienes una cuenta, regístrate gratis y sigue la guía vinculada para preparar tu proyecto.
  • Un entorno de desarrollo local de Yii 2 Puedes descargar Yii 2 usando Composer y seguir la Guía Oficial de Yii 2 para la configuración.
  • PHP (versión 7.4 o superior) instalado Necesitarás un entorno PHP compatible para ejecutar Yii 2 y gestionar paquetes de Composer.
  • Familiaridad con PHP y conceptos básicos de Yii 2 Si eres nuevo en el marco Yii, consulta la Documentación Oficial de Yii 2.

Asegúrate de tener todos estos requisitos previos en su lugar antes de comenzar. Tener tu proyecto de Back4app configurado y tu entorno local de Yii 2 listo te permitirá seguir más fácilmente.

Paso 1 – Crear un Nuevo Proyecto en Back4App y Conectar

Crear un Nuevo Proyecto

El primer paso para construir un backend para Yii 2 es crear un nuevo proyecto de Back4app. Si aún no lo has hecho, sigue estos pasos:

  1. Inicia sesión en tu cuenta de Back4app.
  2. Haz clic en el botón “Nueva App” en tu panel de Back4app.
  3. Nombra tu app (por ejemplo, “Yii2-Backend-Tutorial”).
Document image


Una vez que se crea el proyecto, lo verás en tu panel de control de Back4app. Esto sirve como la base para todas las configuraciones de backend que exploraremos en este tutorial.

Conectando a través de las APIs de Parse

Back4app utiliza la Plataforma Parse en su interior. Aunque existe el SDK de PHP de Parse, también puedes integrar tu aplicación Yii 2 con Back4app utilizando las APIs REST o GraphQL de Parse.

Este enfoque es flexible, permitiéndote escribir código que envía solicitudes HTTP o GraphQL a Back4app desde tus controladores o modelos de Yii.

Recupera tus claves de Parse

  1. En tu panel de control de Back4app, ve a “Configuraciones de la aplicación” o “Seguridad y Claves”.
  2. Localiza tu ID de Aplicación, Clave API REST, y la URL del Servidor Parse (generalmente https://parseapi.back4app.com).
Document image


Mantén estas credenciales a mano. Las necesitarás al hacer solicitudes desde tu aplicación Yii 2 a Back4app.

Paso 2 – Configuración de la Base de Datos

Tu proyecto de Back4app viene con una base de datos en la nube que es gestionada automáticamente por el Parse Server. Puedes crear un modelo de datos y almacenar objetos en él utilizando REST, GraphQL o el agente de IA en Back4app.

Creando un Modelo de Datos

  1. Abre la sección “Base de Datos en tu panel de control de Back4app.
  2. Crea una nueva clase (por ejemplo, “Todo”) y añade columnas como título (String) y isCompleted (Boolean).
Crear Nueva Clase
Crear Nueva Clase


También puedes permitir que Parse cree estas columnas automáticamente la primera vez que tu código Yii envía datos. Además, el Agente de IA de Back4app puede ayudarte a configurar el esquema:

  1. Abre el Agente de IA desde tu panel de control de la aplicación o el menú.
  2. Describe tu modelo de datos (por ejemplo, “Crea un esquema de aplicación Todo con una clase Todo”).
  3. Permite que el Agente de IA genere el esquema.
Document image


Lectura y escritura de datos usando REST API

A continuación se muestra un ejemplo de guardar un Todo objeto usando la REST API. Podrías implementar esto en una acción de controlador de Yii 2 usando cURL o file_get_contents() de PHP para enviar datos JSON.

Bash


Ejemplo de fragmento de código PHP de Yii 2 (usando cURL) en un controlador:

PHP


Consultar los mismos datos con REST podría verse así:

Bash


Lectura y escritura de datos utilizando la API de GraphQL

También puedes crear y leer datos utilizando la interfaz GraphQL de Parse. Por ejemplo, para crear un Todo:

GraphQL


En Yii 2, puedes usar bibliotecas de GraphQL o solicitudes HTTP simples para interactuar con el endpoint GraphQL de Back4app: https://parseapi.back4app.com/graphql

Trabajando con Consultas en Vivo (Opcional)

Para actualizaciones en tiempo real, Back4app soporta Consultas en Vivo, que te permiten suscribirte a cambios en una clase. Aunque el uso típico en Yii 2 puede ser menos común, aún puedes habilitar Consultas en Vivo en la configuración de tu Back4app y manejar conexiones WebSocket en PHP. Esto es más avanzado, así que consulta la documentación de Consultas en Vivo de Parse para detalles sobre cómo implementar características en tiempo real en tus aplicaciones web basadas en PHP.

Paso 3 – Aplicando Seguridad con ACLs y CLPs

Resumen Breve

Back4app ofrece Listas de Control de Acceso (ACLs) y Permisos a Nivel de Clase (CLPs) para proteger tus datos. Las ACLs se aplican a objetos específicos, mientras que los CLPs definen permisos globales para cada clase.

Document image


Configurando Permisos a Nivel de Clase

  1. Ve a Base de Datos en tu panel de Back4app y selecciona la clase (por ejemplo, “Todo”).
  2. Abre la pestaña de CLPs, y configura los permisos de lectura/escritura (por ejemplo, “Requiere Autenticación” o “Sin Acceso”).

Configurando ACLs

Puedes establecer ACLs para objetos individuales incluyendo un _ACL campo al crear o actualizar datos a través de REST o GraphQL. Por ejemplo, usando REST:

Bash


Este objeto ahora solo puede ser accedido por el usuario con el objectId especificado.

Paso 4 – Escribiendo Funciones de Cloud Code

Por qué Cloud Code

Usar Cloud Code en Back4app te permite ejecutar lógica personalizada del lado del servidor sin gestionar tus propios servidores. Puedes crear lógica de negocio, validaciones de datos, o disparadores para la creación, actualizaciones y eliminaciones de objetos.

Ejemplo de Función de Cloud Code

A continuación se muestra una función simple de Cloud Code (escrita en JavaScript) que calcula la longitud del texto:

main.js


Despliegue

Puedes desplegar tu Cloud Code a través del Back4app CLI o directamente en la Cloud Code > Functions sección de tu panel de Back4app:

  • Back4app CLI:
  • Panel: Copia/pega tu código en main.js y haz clic en Desplegar.
Document image


Llamando a tu Función en la Nube

Puedes llamar a tu función desde Yii 2 usando una simple solicitud REST POST:

Bash


O a través de GraphQL:

GraphQL


Paso 5 – Configurando la Autenticación

Autenticación de Usuario en Back4app

Back4app utiliza la Clase de Usuario de Parse como base para una autenticación segura. Puedes crear y verificar usuarios a través de llamadas REST o GraphQL.

Creando un Usuario con REST

Bash


Iniciando Sesión como Usuario

Bash

Bash


Inicio de sesión social

Para inicios de sesión sociales (Google, Apple, Facebook, etc.), configura tus ajustes de OAuth en Back4app y tu aplicación Yii 2 para manejar los tokens necesarios. Consulta la Documentación de inicio de sesión social para pautas específicas del proveedor.

Verificación de correo electrónico y restablecimiento de contraseña

Habilita la verificación de correo electrónico y el restablecimiento de contraseña en la configuración de correo electrónico de tu panel de Back4app para mejorar la seguridad del usuario:

  1. Ve a la configuración de correo electrónico en tu panel de Back4app.
  2. Habilita la verificación de correo electrónico y personaliza tus plantillas de correo electrónico.
  3. Prueba que tus correos electrónicos se envían y reciben correctamente.

Paso 6 – Manejo del almacenamiento de archivos

Back4app proporciona almacenamiento de archivos seguro a través del sistema de archivos Parse. Aunque el SDK de PHP de Parse es una opción, ilustraremos REST nuevamente por consistencia.

Subiendo archivos a través de REST

Bash


Esto devuelve una url para el archivo guardado. Luego puedes almacenar esa URL en una clase (como Foto) para su recuperación posterior.

Consideraciones de seguridad de archivos

Puedes limitar las cargas de archivos solo a usuarios autenticados o a roles específicos configurando los ajustes del servidor Parse en tu aplicación. Para un control más granular, combina estos ajustes con tus reglas de ACL y CLP.

Paso 7 – Verificación de correo electrónico y restablecimiento de contraseña

Descripción general

La verificación de correo electrónico asegura que los usuarios posean las direcciones de correo electrónico con las que se registran, y el restablecimiento de contraseña les permite recuperar cuentas.

Configuración del Panel de Control de Back4App

  1. Habilitar la Verificación de Correo Electrónico bajo Configuración de la Aplicación > Configuración de Correo Electrónico.
  2. Personalizar la dirección “De” y las plantillas de correo electrónico.
  3. Probar creando un nuevo usuario para confirmar que se envía el correo electrónico de verificación.

Implementación

En tu aplicación Yii 2, dirige a los usuarios a una ruta que active el punto final de restablecimiento de contraseña. El resto del flujo (como el envío del correo electrónico real) es manejado por la infraestructura de Back4app.

Paso 8 – Programación de Tareas con Cloud Jobs

Qué Hacen los Cloud Jobs

Los Cloud Jobs en Back4app te permiten programar tareas rutinarias, como limpiar datos o enviar notificaciones. Defínelos en tu Cloud Code (main.js) y prográmalos en el panel.

Ejemplo: Tarea de Limpieza

main.js


Paso 9 – Integrando Webhooks

Definición

Los webhooks permiten que tu aplicación Back4app envíe solicitudes HTTP automatizadas a servicios externos cuando ocurren eventos, como crear un nuevo Todo.

Configuración

  1. En tu panel de Back4app, ve a Más > WebHooks.
  2. Agrega un Webhook endpoint (por ejemplo, https://your-external-service.com/webhook).
  3. Configura los disparadores (por ejemplo, “Nuevo registro en la clase Todo”).
Agregando un Webhook
Agregando un Webhook


Con webhooks, puedes enviar notificaciones a otros servicios (como Slack, Stripe o tu API personalizada) cada vez que un Todo objeto es creado o actualizado.

Paso 10 – Explorando el Panel de Administración de Back4App

Dónde encontrarlo

La Aplicación de Administración de Back4app es una interfaz de punto y clic para gestionar tus datos sin escribir código. Puedes habilitarla visitando App Dashboard > Más > Admin App y luego Habilitar Admin App.

Habilitar Admin App
Habilitar Admin App


Características

Después de crear un Usuario Administrador, tendrás un subdominio dedicado para tu Aplicación de Administración. Esto proporciona a los miembros autorizados del equipo una interfaz limpia para operaciones CRUD en tu base de datos de Back4app, revisando registros o viendo análisis — no se necesita código.

Document image


Conclusión

En este tutorial, descubriste cómo construir un backend para Yii 2 utilizando Back4app.

Configuraste una base de datos en la nube, estableciste una seguridad robusta con ACLs y CLPs, programaste tareas en segundo plano con Cloud Jobs, e integraste servicios externos a través de webhooks. También viste cómo gestionar la autenticación de usuarios y el almacenamiento de archivos de manera segura.

Habiendo combinado un marco de trabajo Yii de código abierto para construir aplicaciones web con la infraestructura escalable de Back4app, ahora tienes un entorno potente listo para el desarrollo y el crecimiento.

Próximos Pasos

  • Avanza hacia la producción expandiendo tus modelos de datos, aplicando configuraciones de seguridad adicionales y optimizando el rendimiento.
  • Integra APIs externas (pasarelas de pago, proveedores de correo electrónico) a través de Cloud Code o webhooks directos.
  • Explora la documentación oficial de Back4app para temas más profundos como seguridad avanzada, análisis de registros y optimizaciones de rendimiento.
  • Aprende más sobre la construcción de aplicaciones web complejas con Yii 2 utilizando control de acceso basado en roles, estrategias de caché y relaciones avanzadas de bases de datos.

Con esta base, puedes continuar mejorando tu proyecto de Yii 2, enfocarte en la lógica específica del negocio y ofrecer funcionalidades robustas y escalables para tus usuarios. Disfruta programando y construyendo aplicaciones web modernas.