Quickstarters
Feature Overview
Como Construir um Backend para Yii 2?
41 min
introdução neste tutorial, você aprenderá como construir um backend para yii 2 usando o back4app yii 2 é um popular framework php de código aberto que ajuda você a criar aplicações web seguras e eficientes ao integrar o framework yii com o back4app, você pode aproveitar recursos poderosos, como gerenciamento de banco de dados, funções em nuvem, apis rest e graphql, autenticação de usuários e consultas em tempo real – tudo isso enquanto acelera seu processo de desenvolvimento de backend você verá como aproveitar o ambiente do back4app para reduzir a configuração manual do servidor, permitindo que você se concentre em escrever seu código yii 2 seguindo estas etapas, você ganhará experiência prática com funcionalidades essenciais, incluindo controles de segurança robustos (acls, clps), agendamento de tarefas recorrentes e configuração de integrações externas via webhooks ao final deste tutorial, você terá uma estrutura de backend sólida para o seu projeto yii 2, pronta para escalar para produção ou aprimorar com lógica de negócios personalizada você também estará bem preparado para integrar apis de terceiros ou construir novos recursos em suas aplicações web pré requisitos para completar este tutorial, você precisará uma conta back4app e um novo projeto back4app começando com back4app https //www back4app com/docs/get started/new parse app se você não tiver uma conta, inscreva se gratuitamente e siga o guia vinculado para preparar seu projeto um ambiente de desenvolvimento local yii 2 você pode baixar o yii 2 usando composer https //getcomposer org/ e seguir o guia oficial do yii 2 https //www yiiframework com/doc/guide/2 0/en para configuração php (versão 7 4 ou superior) instalado você precisará de um ambiente php compatível para executar o yii 2 e gerenciar pacotes do composer familiaridade com php e conceitos básicos do yii 2 se você é novo no framework yii, confira a documentação oficial do yii 2 https //www yiiframework com/doc/guide/2 0/en certifique se de ter todos esses pré requisitos em ordem antes de começar ter seu projeto back4app configurado e seu ambiente local yii 2 pronto permitirá que você acompanhe mais facilmente passo 1 – criando um novo projeto no back4app e conectando criar um novo projeto o primeiro passo para construir um backend para yii 2 é criar um novo projeto back4app se você ainda não fez isso, siga estes passos faça login na sua conta back4app clique no botão “novo app” no seu painel do back4app nomeie seu app (por exemplo, “yii2 backend tutorial”) uma vez que o projeto é criado, você o verá no seu painel do back4app isso serve como a base para todas as configurações de backend que exploraremos neste tutorial conectando via apis parse o back4app utiliza a plataforma parse por trás das cenas embora o sdk php do parse exista, você também pode integrar sua aplicação yii 2 com o back4app usando as apis rest ou graphql do parse essa abordagem é flexível, permitindo que você escreva código que envia requisições http ou graphql para o back4app a partir dos seus controladores ou modelos yii recupere suas chaves parse no seu painel do back4app, vá para “configurações do app” ou “segurança e chaves” localize seu id da aplicação , chave da api rest , e a url do servidor parse (geralmente https //parseapi back4app com ) mantenha essas credenciais à mão você precisará delas ao fazer requisições da sua aplicação yii 2 para o back4app passo 2 – configurando o banco de dados seu projeto back4app vem com um banco de dados baseado em nuvem que é gerenciado automaticamente pelo parse server você pode criar um modelo de dados e armazenar objetos nele usando rest, graphql ou o agente de ia do back4app criando um modelo de dados abra a seção “banco de dados” no seu painel do back4app crie uma nova classe (por exemplo, “todo”) e adicione colunas como título (string) e estácompleto (boolean) você também pode deixar o parse criar essas colunas automaticamente na primeira vez que seu código yii enviar dados além disso, o agente de ia do back4app pode ajudá lo a configurar o esquema abra o agente de ia do seu painel de aplicativos ou do menu descreva seu modelo de dados (por exemplo, “crie um esquema de app todo com uma classe todo ”) permita que o agente de ia gere o esquema lendo e escrevendo dados usando rest api abaixo está um exemplo de salvar um todo objeto usando a rest api você pode implementar isso em uma ação de controlador yii 2 usando curl ou file get contents() do php para postar dados json curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo exemplo de trecho de código php yii 2 (usando curl) em um controlador public function actioncreatetodo() { $url = "https //parseapi back4app com/classes/todo"; $data = \[ "title" => "buy groceries", "iscompleted" => false ]; $headers = \[ "x parse application id your application id", "x parse rest api key your rest api key", "content type application/json" ]; $ch = curl init($url); curl setopt($ch, curlopt post, 1); curl setopt($ch, curlopt postfields, json encode($data)); curl setopt($ch, curlopt httpheader, $headers); curl setopt($ch, curlopt returntransfer, true); $result = curl exec($ch); curl close($ch); // handle $result as needed, e g , parse json or redirect } consultando os mesmos dados com rest pode parecer 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 a api graphql você também pode criar e ler dados usando a interface graphql do parse por exemplo, para criar um todo mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } no yii 2, você pode usar bibliotecas graphql https //packagist org/packages/webonyx/graphql php ou solicitações http simples para interagir com o endpoint graphql do back4app https //parseapi back4app com/graphql trabalhando com consultas ao vivo (opcional) para atualizações em tempo real, o back4app suporta consultas ao vivo , que permitem que você se inscreva em mudanças em uma classe embora o uso típico no yii 2 possa ser menos comum, você ainda pode habilitar consultas ao vivo nas configurações do back4app e gerenciar conexões websocket em php isso é mais avançado, então consulte a documentação de consultas ao vivo do parse https //www back4app com/docs/javascript live queries/parse livequery overview para detalhes sobre como implementar recursos em tempo real em suas aplicações web baseadas em php passo 3 – aplicando segurança com acls e clps visão geral back4app oferece listas de controle de acesso (acls) e permissões em nível de classe (clps) para proteger seus dados acls se aplicam a objetos específicos, enquanto clps definem permissões globais para cada classe configurando permissões em nível de classe vá para banco de dados no seu painel do back4app e selecione a classe (por exemplo, “todo”) abra a aba de clps , e configure as permissões de leitura/escrita (por exemplo, “requer autenticação” ou “sem acesso”) configurando acls você pode definir acls para objetos individuais incluindo um acl campo ao criar ou atualizar dados via rest ou graphql por exemplo, usando rest curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{ "title" "private todo", "acl" { "user object id here" { "read" true, "write" true }, " " { "read" false, "write" false } } }' \\ https //parseapi back4app com/classes/todo este objeto agora só pode ser acessado pelo usuário com o objectid especificado passo 4 – escrevendo funções de cloud code por que cloud code usar cloud code no back4app permite que você execute lógica personalizada do lado do servidor sem gerenciar seus próprios servidores você pode criar lógica de negócios , validações de dados , ou gatilhos para criação, atualizações e exclusões de objetos exemplo de função de cloud code abaixo está uma função simples de cloud code (escrita em javascript) que calcula o comprimento do texto main js // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); implantação você pode implantar seu cloud code via o back4app cli ou diretamente na seção cloud code > functions do seu painel back4app back4app cli painel copie/cole seu código em main js e clique em implantar chamando sua função na nuvem você pode chamar sua função do yii 2 usando uma simples solicitação rest post 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 '{"text" "hello back4app"}' \\ https //parseapi back4app com/functions/calculatetextlength ou via graphql mutation { calculatetextlength(input { text "hello graphql" }) { result } } passo 5 – configurando autenticação autenticação de usuário no back4app back4app usa a classe parse user como base para autenticação segura você pode criar e verificar usuários através de chamadas rest ou graphql criando um usuário 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 application/json" \\ d '{ "username" "alice", "password" "secret123", "email" "alice\@example com" }' \\ https //parseapi back4app com/users fazendo login de um usuário curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secret123' \\ https //parseapi back4app com/login curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secret123' \\ https //parseapi back4app com/login login social para logins sociais (google, apple, facebook, etc ), configure suas configurações de oauth no back4app e seu aplicativo yii 2 para lidar com os tokens necessários consulte os documentos de login social https //www back4app com/docs/platform/sign in with apple para diretrizes específicas do provedor verificação de email e redefinição de senha ative a verificação de email e a redefinição de senha nas configurações de email do seu painel do back4app para melhorar a segurança do usuário vá para as configurações de email no seu painel do back4app ative a verificação de email e personalize seus modelos de email teste se seus emails estão sendo enviados e recebidos corretamente passo 6 – gerenciando armazenamento de arquivos o back4app fornece armazenamento de arquivos seguro através do sistema de arquivos parse embora o sdk php do parse seja uma opção, ilustraremos o rest novamente para consistência carregando arquivos via 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 "@path/to/local/image png" \\ https //parseapi back4app com/files/myimage png isso retorna uma url para o arquivo salvo você pode então armazenar essa url em uma classe (como foto ) para recuperação posterior considerações de segurança de arquivos você pode limitar o upload de arquivos apenas a usuários autenticados ou a funções específicas configurando as configurações do parse server em seu aplicativo para um controle mais granular, combine essas configurações com suas regras de acl e clp passo 7 – verificação de email e redefinição de senha visão geral a verificação de email garante que os usuários possuam os endereços de email com os quais se registram, e a redefinição de senha permite que eles recuperem contas configuração do painel back4app ativar verificação de email em configurações do app > configurações de email personalizar o endereço “de” e os modelos de email testar criando um novo usuário para confirmar que o email de verificação é enviado implementação em sua aplicação yii 2, direcione os usuários para uma rota que aciona o endpoint de redefinição de senha https //www back4app com/docs/users/password reset o restante do fluxo (como o envio do email real) é gerenciado pela infraestrutura do back4app passo 8 – agendando tarefas com cloud jobs o que os cloud jobs fazem os cloud jobs no back4app permitem que você agende tarefas rotineiras, como limpar dados ou enviar notificações defina os em seu cloud code ( main js ) e agende os no painel exemplo tarefa de limpeza main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); passo 9 – integrando webhooks definição webhooks permitem que sua aplicação back4app envie requisições http automatizadas para serviços externos quando eventos ocorrem, como criar um novo todo configuração no seu painel do back4app , vá para mais > webhooks adicione um webhook endpoint (por exemplo, https //your external service com/webhook ) configure gatilhos (por exemplo, “novo registro na classe todo”) com webhooks, você pode enviar notificações para outros serviços (como slack, stripe ou sua api personalizada) sempre que um todo objeto é criado ou atualizado passo 10 – explorando o painel de administração do back4app onde encontrá lo o aplicativo de administração do back4app é uma interface de apontar e clicar para gerenciar seus dados sem escrever código você pode ativá lo visitando painel do aplicativo > mais > aplicativo de administração e então ativar aplicativo de administração recursos após criar um usuário administrador, você terá um subdomínio dedicado para seu aplicativo de administração isso oferece aos membros autorizados da equipe uma interface limpa para operações crud em seu banco de dados back4app, revisando logs ou visualizando análises — sem necessidade de código conclusão neste tutorial, você descobriu como construir um backend para yii 2 usando o back4app você configurou um banco de dados baseado em nuvem, estabeleceu segurança robusta com acls e clps, agendou tarefas em segundo plano com cloud jobs e integrou serviços externos através de webhooks você também viu como gerenciar autenticação de usuários e armazenamento de arquivos de forma segura tendo combinado um framework yii de código aberto para construir aplicações web com a infraestrutura escalável do back4app, você agora tem um ambiente potente pronto para desenvolvimento e crescimento próximos passos avance para a produção expandindo seus modelos de dados, aplicando configurações de segurança adicionais e otimizando o desempenho integre apis externas (gateways de pagamento, provedores de e mail) via cloud code ou webhooks diretos explore a documentação oficial do back4app para tópicos mais profundos como segurança avançada, análise de logs e otimizações de desempenho saiba mais sobre como construir aplicações web complexas com yii 2 usando controle de acesso baseado em funções, estratégias de cache e relacionamentos avançados de banco de dados com esta base, você pode continuar a aprimorar seu projeto yii 2, focar na lógica específica do negócio e entregar funcionalidades robustas e escaláveis para seus usuários aproveite a codificação e a construção de aplicações web modernas