Quickstarters
Feature Overview
How to Build a Backend for Symfony?
29 min
introdução neste tutorial, você aprenderá como construir um backend para symfony usando o back4app mostraremos como usar os recursos robustos do back4app—incluindo gerenciamento de banco de dados, cloud code, rest e apis graphql—para criar um backend seguro, escalável e eficiente que funcione perfeitamente com sua aplicação symfony você também descobrirá como lidar com autenticação de usuários, armazenamento de arquivos e atualizações em tempo real através de consultas ao vivo (se aplicável à sua arquitetura) ao aproveitar a configuração rápida e a plataforma intuitiva do back4app, você economizará tempo e esforço em comparação com o manuseio manual de servidores e bancos de dados você ganhará experiência prática em segurança avançada, agendamento de tarefas com cloud jobs, configuração de webhooks e outros recursos essenciais para um desenvolvimento de backend confiável após completar este tutorial, você pode expandir ou personalizar seu backend symfony para produção com confiança, integrar apis externas e adicionar lógica de negócios complexa conforme necessário pré requisitos uma conta back4app inscreva se gratuitamente aqui https //www back4app com um novo projeto back4app começando com back4app https //www back4app com/docs/get started/new parse app configuração específica do symfony certifique se de que você tem symfony https //symfony com/download instalado localmente confirme que você tem php e composer prontos conhecimento básico de symfony familiaridade com controladores, serviços e templates é benéfica documentação oficial do symfony https //symfony com/doc/current/index html node js (opcional, para certas ferramentas de build) se você planeja usar ferramentas baseadas em node para tarefas de front end, instale node js https //nodejs org/en/download/ certifique se de que seu ambiente symfony e projeto back4app estão configurados antes de começar isso ajudará você a seguir os passos sem problemas passo 1 – criando um novo projeto no back4app e conectando criar um projeto back4app faça login na sua conta back4app clique em “novo app” no painel nomeie o (por exemplo, “symfony backend tutorial”) uma vez criado, ele aparece no seu painel back4app este projeto é a sua base de backend conectar com rest ou graphql nas “configurações do app” ou “segurança & chaves” do seu app, encontre seu id da aplicação e chave da api rest (e o endpoint graphql se você planeja usar graphql) anote seu url do parse server (por exemplo, https //parseapi back4app com ) como o symfony não possui um sdk parse nativo, você dependerá do cliente http do symfony ou de uma biblioteca como o guzzle para se comunicar com as apis rest ou graphql do back4app abaixo está um exemplo usando o 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 serviço ajudará você a fazer requisições ao seu backend do back4app a partir do symfony passo 2 – configurando o banco de dados criando um modelo de dados no back4app, você definirá classes (tabelas) que armazenam seus dados vamos supor que você queira uma todo classe para armazenar tarefas navegue até o banco de dados no seu painel do back4app crie uma nova classe “todo” e adicione campos como título (string) e iscompleted (boolean) alternativamente, deixe o agente de ia do back4app criar seu modelo de dados abra o agente de ia no seu painel do projeto descreva seu modelo de dados (por exemplo, “crie uma classe todo com campos título e iscompleted ”) gere o esquema automaticamente lendo e escrevendo dados usando rest para criar um novo todo a partir de um controlador symfony, você pode fazer 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 , use uma requisição get com suas credenciais 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 lendo e escrevendo dados usando graphql você também pode integrar graphql no symfony usando uma biblioteca de cliente graphql um exemplo de mutação para criar um todo é mutation { createtodo(input { fields { title "clean the kitchen" iscompleted false } }) { todo { objectid title iscompleted } } } trabalhando com consultas ao vivo (opcional) se o seu aplicativo symfony precisa de dados em tempo real, você pode incorporar consultas ao vivo em um contexto mais de front end ou microserviço em tempo real configure consultas ao vivo nas configurações do servidor no back4app, e então conecte um cliente websocket o symfony pode responder ou transmitir essas atualizações através de uma camada separada em tempo real, se necessário passo 3 – aplicando segurança com acls e clps acls (listas de controle de acesso) as acls permitem que você controle quem pode ler ou escrever um objeto por exemplo, você pode aplicar uma acl no código ao criar dados com a api rest adicionando campos acl no seu json por exemplo { "title" "private task", "iscompleted" false, " acl" { "userobjectidhere" { "read" true, "write" true } } } clps (permissões de nível de classe) as permissões de nível de classe permitem que você defina regras de acesso amplas para uma classe inteira abra o banco de dados no painel do back4app selecione sua classe (por exemplo, “todo”) vá para a aba de permissões e configure o acesso de leitura/gravação para mais informações, visite o diretrizes de segurança do app https //www back4app com/docs/security/parse security passo 4 – escrevendo funções de código em nuvem o código em nuvem permite que você execute javascript seguro do lado do servidor sem gerenciar infraestrutura enquanto o symfony está em php, você ainda pode delegar certas tarefas para código em nuvem no back4app para lógica avançada, gatilhos e validações exemplo validar um todo antes de salvar // main js parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw new error('todo must have a title'); } }); implantação use o cli do back4app ou o painel para implantar main js invocar suas funções em nuvem via rest ou graphql a partir dos seus serviços symfony passo 5 – configurando autenticação o gerenciamento de usuários no back4app depende da classe parse user com o symfony, você pode gerenciar inscrições de usuários, logins e redefinições de senha via chamadas rest ou graphql inscreva se / faça login via 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 use um serviço symfony para envolver essas chamadas se você precisar de fluxos de usuário programáticos login social se você planeja integrar o login do google ou da apple, consulte a documentação de login social do back4app https //www back4app com/docs/platform/sign in with apple você configurará seus aplicativos oauth e fará chamadas rest específicas para completar a autenticação passo 6 – gerenciamento de armazenamento de arquivos upload de arquivo com 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 após o upload, você receberá uma url de arquivo você pode armazenar esse link em qualquer classe (por exemplo, todo ) como uma referência a esse arquivo passo 7 – verificação de email e redefinição de senha configurando email vá para configurações de email no back4app ative a verificação de email e os modelos de redefinição de senha personalize as linhas “de” e “assunto” conforme necessário isso garante que todos os cadastros exijam confirmações de email válidas passo 8 – agendando tarefas com cloud jobs exemplo de cloud job // 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 `; }); agende este cleanupoldtodos job no seu painel do back4app para rodar diariamente, melhorando sua gestão de dados passo 9 – integrando webhooks webhooks permitem que o back4app envie requisições http para serviços externos por exemplo, você pode notificar um endpoint do slack sempre que um novo todo for criado vá para mais > webhooks no seu painel do back4app adicione um webhook especificando seu endpoint externo acione o evento na criação de objeto na classe todo passo 10 – explorando o painel de administração do back4app use o back4app admin app para uma interface de gerenciamento de dados amigável ativar o admin app em app dashboard > mais > admin app criar um usuário admin com um nome de usuário e senha seguros atribuir um subdomínio personalizado para acesso fácil este recurso ajuda membros da equipe não técnicos a visualizar e gerenciar registros sem mergulhar no código conclusão você aprendeu como construir um backend para symfony usando back4app isso incluiu criando um novo projeto no back4app como base configurando o banco de dados com classes, campos e relacionamentos protegendo dados com acls e clps aproveitando o cloud code para lógica do lado do servidor gerenciando a autenticação de usuários (cadastro, login, redefinição de senha) gerenciando o armazenamento de arquivos com a api rest configurando cloud jobs para tarefas periódicas integrando webhooks para conectar serviços externos navegando no painel de administração do back4app para fácil gerenciamento de dados esses passos fornecem uma estrutura sólida para construir e escalar sua aplicação symfony expanda essa arquitetura para lidar com lógica mais complexa, integrar gateways de pagamento ou adicionar recursos de segurança avançados com o back4app, você economiza tempo e esforço em hospedagem e infraestrutura—para que você possa se concentrar em oferecer a melhor experiência possível ao usuário próximos passos construa um aplicativo symfony pronto para produção personalizando seu backend do back4app para maior tráfego e necessidades de desempenho avançadas integre recursos avançados como acesso baseado em funções, análises ou apis de terceiros para pagamentos explore a documentação oficial do back4app para obter insights mais profundos sobre segurança, logs e monitoramento confira mais tutoriais para combinar este backend com serviços em tempo real ou para criar sites dinâmicos com atualizações ao vivo seguindo essas estratégias, seu projeto symfony ganha um backend poderoso e eficiente adote o back4app para facilitar a manutenção e evoluir rapidamente as capacidades da sua aplicação boa sorte na construção da sua próxima obra prima symfony!