¿Cómo construir un backend para Yii 2?
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.
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.
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:
- Inicia sesión en tu cuenta de Back4app.
- Haz clic en el botón “Nueva App” en tu panel de Back4app.
- Nombra tu app (por ejemplo, “Yii2-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
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.
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.
- En tu panel de control de Back4app, ve a “Configuraciones de la aplicación” o “Seguridad y Claves”.
- Localiza tu ID de Aplicación, Clave API REST, y la URL del Servidor Parse (generalmente https://parseapi.back4app.com).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Mantén estas credenciales a mano. Las necesitarás al hacer solicitudes desde tu aplicación Yii 2 a Back4app.
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.
- Abre la sección “Base de Datos en tu panel de control de Back4app.
- Crea una nueva clase (por ejemplo, “Todo”) y añade columnas como título (String) y isCompleted (Boolean).
![Crear Nueva Clase Crear Nueva Clase](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
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:
- Abre el Agente de IA desde tu panel de control de la aplicación o el menú.
- Describe tu modelo de datos (por ejemplo, “Crea un esquema de aplicación Todo con una clase Todo”).
- Permite que el Agente de IA genere el esquema.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
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.
Ejemplo de fragmento de código PHP de Yii 2 (usando cURL) en un controlador:
Consultar los mismos datos con REST podría verse así:
También puedes crear y leer datos utilizando la interfaz GraphQL de Parse. Por ejemplo, para crear un Todo:
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
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.
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 Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Ve a Base de Datos en tu panel de Back4app y selecciona la clase (por ejemplo, “Todo”).
- Abre la pestaña de CLPs, y configura los permisos de lectura/escritura (por ejemplo, “Requiere Autenticación” o “Sin Acceso”).
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:
Este objeto ahora solo puede ser accedido por el usuario con el objectId especificado.
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.
A continuación se muestra una función simple de Cloud Code (escrita en JavaScript) que calcula la longitud del texto:
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 Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Puedes llamar a tu función desde Yii 2 usando una simple solicitud REST POST:
O a través de GraphQL:
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.
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.
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:
- Ve a la configuración de correo electrónico en tu panel de Back4app.
- Habilita la verificación de correo electrónico y personaliza tus plantillas de correo electrónico.
- Prueba que tus correos electrónicos se envían y reciben correctamente.
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.
Esto devuelve una url para el archivo guardado. Luego puedes almacenar esa URL en una clase (como Foto) para su recuperación posterior.
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.
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.
- Habilitar la Verificación de Correo Electrónico bajo Configuración de la Aplicación > Configuración de Correo Electrónico.
- Personalizar la dirección “De” y las plantillas de correo electrónico.
- Probar creando un nuevo usuario para confirmar que se envía el correo electrónico de verificació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.
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.
Los webhooks permiten que tu aplicación Back4app envíe solicitudes HTTP automatizadas a servicios externos cuando ocurren eventos, como crear un nuevo Todo.
- En tu panel de Back4app, ve a Más > WebHooks.
- Agrega un Webhook endpoint (por ejemplo, https://your-external-service.com/webhook).
- Configura los disparadores (por ejemplo, “Nuevo registro en la clase Todo”).
![Agregando un Webhook Agregando un Webhook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
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.
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](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
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 Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
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.
- 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.
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)