Quickstarters
Feature Overview
¿Cómo construir un backend para Symfony?
29 min
introducción en este tutorial, aprenderás cómo construir un backend para symfony utilizando back4app te mostraremos cómo utilizar las robustas características de back4app—incluyendo gestión de bases de datos, cloud code, rest y apis de graphql—para crear un backend seguro, escalable y eficiente que funcione sin problemas con tu aplicación symfony también descubrirás cómo manejar la autenticación de usuarios, el almacenamiento de archivos y las actualizaciones en tiempo real a través de consultas en vivo (si es aplicable para tu arquitectura) al aprovechar la rápida configuración y la plataforma intuitiva de back4app, ahorrarás tiempo y esfuerzo en comparación con el manejo manual de servidores y bases de datos obtendrás experiencia práctica en seguridad avanzada, programación de tareas con cloud jobs, configuración de webhooks y otras características esenciales para un desarrollo de backend confiable después de completar este tutorial, puedes expandir o personalizar con confianza tu backend de symfony para producción, integrar apis externas y agregar lógica empresarial compleja según sea necesario requisitos previos una cuenta de back4app regístrate gratis aquí https //www back4app com un nuevo proyecto de back4app comenzando con back4app https //www back4app com/docs/get started/new parse app configuración específica de symfony asegúrate de tener symfony https //symfony com/download instalado localmente confirma que tienes php y composer listos conocimientos básicos de symfony la familiaridad con controladores, servicios y plantillas es beneficiosa documentación oficial de symfony https //symfony com/doc/current/index html node js (opcional, para ciertas herramientas de construcción) si planeas usar herramientas basadas en node para tareas de front end, instala node js https //nodejs org/en/download/ asegúrate de que tu entorno de symfony y tu proyecto de back4app estén configurados antes de comenzar esto te ayudará a seguir los pasos sin problemas paso 1 – crear un nuevo proyecto en back4app y conectar crear un proyecto de back4app inicia sesión en tu cuenta de back4app haz clic en “nueva app” en el panel de control nómbrala (por ejemplo, “symfony backend tutorial”) una vez creado, aparece en tu panel de control de back4app este proyecto es tu base de backend conéctate con rest o graphql en la “configuración de la app” o “seguridad y claves” de tu app, encuentra tu id de aplicación y clave api rest (y el endpoint de graphql si planeas usar graphql) anota tu url del servidor parse (por ejemplo, https //parseapi back4app com ) dado que symfony no tiene un sdk nativo de parse, dependerás del cliente http de symfony o de una biblioteca como guzzle para comunicarte con las apis rest o graphql de back4app a continuación se muestra un ejemplo utilizando el symfony httpclient https //symfony com/doc/current/http client html // src/service/back4appclient php namespace app\service; use symfony\component\httpclient\httpclient; class back4appclient { private $appid; private $restkey; private $baseurl; public function construct(string $appid, string $restkey, string $baseurl) { $this >appid = $appid; $this >restkey = $restkey; $this >baseurl = $baseurl; } public function createobject(string $classname, array $data) { $client = httpclient create(); $response = $client >request('post', $this >baseurl '/classes/' $classname, \[ 'headers' => \[ 'x parse application id' => $this >appid, 'x parse rest api key' => $this >restkey, 'content type' => 'application/json' ], 'json' => $data, ]); return $response >toarray(); } } este servicio te ayudará a hacer solicitudes a tu backend de back4app desde dentro de symfony paso 2 – configuración de la base de datos creando un modelo de datos en back4app, definirás clases (tablas) que almacenan tus datos supongamos que quieres una todo clase para contener tareas navegar a la base de datos en tu panel de back4app crear una nueva clase “todo” y agregar campos como título (string) y iscompleted (boolean) alternativamente, deja que back4app ai agent cree tu modelo de datos abrir el ai agent en el panel de tu proyecto describir tu modelo de datos (por ejemplo, “crear una clase todo con campos de título y iscompleted ”) generar el esquema automáticamente lectura y escritura de datos usando rest para crear un nuevo todo desde un controlador symfony, puedes hacer use app\service\back4appclient; use symfony\bundle\frameworkbundle\controller\abstractcontroller; use symfony\component\routing\annotation\route; class todocontroller extends abstractcontroller { \#\[route('/todo/new', name 'new todo')] public function new(back4appclient $client) { $data = \[ 'title' => 'buy groceries', 'iscompleted' => false ]; $result = $client >createobject('todo', $data); return $this >json($result); } } para consultas , usa una solicitud get con tus credenciales curl x get \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ https //parseapi back4app com/classes/todo lectura y escritura de datos usando graphql también puedes integrar graphql en symfony utilizando una biblioteca de cliente graphql un ejemplo de mutación para crear un todo es mutation { createtodo(input { fields { title "clean the kitchen" iscompleted false } }) { todo { objectid title iscompleted } } } trabajando con consultas en vivo (opcional) si tu aplicación symfony necesita datos en tiempo real, podrías incorporar consultas en vivo en un contexto más de microservicio en tiempo real o front end configura consultas en vivo en los ajustes del servidor en back4app, luego conecta un cliente websocket symfony puede responder o transmitir estas actualizaciones a través de una capa de tiempo real separada si es necesario paso 3 – aplicando seguridad con acls y clps acls (listas de control de acceso) las acls te permiten controlar quién puede leer o escribir un objeto por ejemplo, puedes aplicar una acl en el código al crear datos con la api rest añadiendo campos acl en tu json por ejemplo { "title" "private task", "iscompleted" false, " acl" { "userobjectidhere" { "read" true, "write" true } } } clps (permisos a nivel de clase) los permisos a nivel de clase te permiten establecer reglas de acceso amplias para toda una clase abre la base de datos en el panel de control de back4app selecciona tu clase (por ejemplo, “todo”) ve a la pestaña de permisos y configura el acceso de lectura/escritura para más información, visita las directrices de seguridad de la aplicación https //www back4app com/docs/security/parse security paso 4 – escribiendo funciones de cloud code cloud code te permite ejecutar javascript seguro del lado del servidor sin gestionar infraestructura mientras symfony está en php, aún puedes delegar ciertas tareas a cloud code en back4app para lógica avanzada, disparadores y validaciones ejemplo validar un todo antes de guardar // main js parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw new error('todo must have a title'); } }); despliegue usa el cli de back4app o el panel de control para desplegar main js invoca tus funciones de cloud a través de rest o graphql desde tus servicios de symfony paso 5 – configurando la autenticación la gestión de usuarios en back4app se basa en la clase de usuario de parse con symfony, puedes manejar registros de usuarios, inicios de sesión y restablecimientos de contraseña a través de llamadas rest o graphql registrarse / iniciar sesión a través de rest \# sign up curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"username" "alex", "password" "symfony123", "email" "alex\@example com"}' \\ https //parseapi back4app com/users \# log in curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ \ data urlencode 'username=alex' \\ \ data urlencode 'password=symfony123' \\ https //parseapi back4app com/login utiliza un servicio de symfony para envolver estas llamadas si necesitas flujos de usuario programáticos inicio de sesión social si planeas integrar el inicio de sesión de google o apple, consulta la documentación de inicio de sesión social de back4app https //www back4app com/docs/platform/sign in with apple configurarás tus aplicaciones oauth y realizarás llamadas rest específicas para completar la autenticación paso 6 – manejo del almacenamiento de archivos carga de archivos con rest curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type image/png" \\ \ data binary '@localimage png' \\ https //parseapi back4app com/files/localimage png después de cargar, obtendrás una url de archivo puedes almacenar ese enlace en cualquier clase (por ejemplo, todo ) como una referencia a ese archivo paso 7 – verificación de correo electrónico y restablecimiento de contraseña configurando el correo electrónico ir a la configuración de correo electrónico en back4app habilitar la verificación de correo electrónico y las plantillas de restablecimiento de contraseña personalizar las líneas de “de” y “asunto” según sea necesario esto asegura que todos los registros requieran confirmaciones de correo electrónico válidas paso 8 – programación de tareas con trabajos en la nube ejemplo de trabajo en la nube // main js parse cloud job('cleanupoldtodos', async () => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; query lessthan('createdat', new date(now thirty days)); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); programa este cleanupoldtodos trabajo en tu panel de back4app para que se ejecute diariamente, mejorando la gestión de tus datos paso 9 – integración de webhooks webhooks permiten que back4app envíe solicitudes http a servicios externos por ejemplo, puedes enviar un ping a un endpoint de slack cada vez que se crea un nuevo todo ir a más > webhooks en tu panel de back4app agregar un webhook especificando tu endpoint externo activar el evento en la creación de objetos en la clase todo paso 10 – explorando el panel de administración de back4app utiliza la back4app admin app para una interfaz de gestión de datos fácil de usar habilitar la admin app desde app dashboard > más > admin app crear un usuario administrador con un nombre de usuario y contraseña seguros asignar un subdominio personalizado para un acceso fácil esta función ayuda a los miembros del equipo no técnicos a ver y gestionar registros sin profundizar en el código conclusión has aprendido cómo construir un backend para symfony utilizando back4app esto incluyó creando un nuevo proyecto en back4app como base configurando la base de datos con clases, campos y relaciones asegurando los datos con acls y clps aprovechando cloud code para la lógica del lado del servidor gestionando la autenticación de usuarios (registro, inicio de sesión, restablecimiento de contraseña) manejando el almacenamiento de archivos con la api rest configurando cloud jobs para tareas periódicas integrando webhooks para conectar servicios externos navegando por el panel de administración de back4app para una fácil gestión de datos estos pasos te brindan un marco sólido para construir y escalar tu aplicación symfony amplía esta arquitectura para manejar lógica más compleja, integrar pasarelas de pago o agregar características de seguridad avanzadas con back4app, ahorras tiempo y esfuerzo en alojamiento e infraestructura, para que puedas concentrarte en ofrecer la mejor experiencia de usuario posible próximos pasos construir una aplicación symfony lista para producción personalizando tu backend de back4app para un mayor tráfico y necesidades de rendimiento avanzadas integrar características avanzadas como acceso basado en roles, análisis o apis de terceros para pagos explorar la documentación oficial de back4app para obtener información más profunda sobre seguridad, registros y monitoreo revisar más tutoriales para combinar este backend con servicios en tiempo real o para crear sitios web dinámicos con actualizaciones en vivo al seguir estas estrategias, tu proyecto symfony obtiene un backend poderoso y eficiente abraza back4app para facilitar el mantenimiento y evolucionar rápidamente las capacidades de tu aplicación ¡buena suerte construyendo tu próxima obra maestra de symfony!